Documentation

Doclet runs small web apps and decides who can open them. This page is everything you need.

Quickstart

$npm install -g doclet-cli
$doclet login
$doclet deploy

doclet login opens your browser to approve the CLI. doclet deploy packs the current folder, uploads it, installs dependencies and starts it, then prints the URL. The first deploy creates the app, named after the folder; later deploys update it.

What you can deploy

Doclet picks how to run your folder by looking for, in order:

node_modules, .git and .env files are never uploaded. Your .gitignore is respected; add a .docletignore for anything else.

How your app runs

Your app is a normal process. Doclet gives it:

Apps sleep when idle and wake on the next request, so the first visit after a quiet spell takes a few seconds. Keep in-memory state to things you can rebuild.

Knowing who's visiting

Visitors are signed in before a request reaches your app, and the edge adds these headers. Any copies a client sends are discarded, so you can trust them.

x-doclet-user-email   maya@acme.co
x-doclet-user-id      stable id for this person
x-doclet-user-name    URL-encoded display name, if they've set one

On a public app visitors are anonymous and these headers are absent.

Sharing

New apps are private. People who can always open an app: its creator, and workspace owners and admins. Everyone else needs one of:

doclet share maya@acme.co dev@acme.co
doclet share --workspace-wide
doclet share --public
doclet unshare maya@acme.co

Removing access takes effect within seconds, including for people who already have the app open.

Members vs viewers. Members belong to your workspace — they create and deploy apps, and they're what your plan is priced on. A viewer is anyone an app is shared with who isn't a member: a client, a contractor, a teammate in another company. Viewers are free, and there's no limit to how many you can share an app with.

Environment variables

doclet env set API_KEY=sk-live-... GREETING=hello --redeploy
doclet env list
doclet env unset API_KEY

Values are write-only: they can be replaced but not read back. They apply the next time the app starts, which --redeploy does immediately. Names Doclet owns (PORT, DATA_DIR, DOCLET_*) can't be overridden.

CLI reference

doclet login / logout / whoamiManage the CLI's sign-in
doclet deploy [dir] [-m note]Upload and start the app
doclet listApps in the workspace
doclet statusState, URL, sharing, variables
doclet openOpen the app in a browser
doclet share / unshareControl who can open it
doclet env set|unset|listEnvironment variables
doclet pause / resumeTake it offline without deleting
doclet deleteRemove the app and its data

Every command accepts --workspace and --app. After the first deploy the folder remembers its app in .doclet/project.json.

Deploying from CI

Create a token under Account → Access tokens (optionally limited to one workspace), store it as a secret, and:

DOCLET_TOKEN=dl_... doclet deploy --workspace acme --app invoices -m "$GITHUB_SHA"

Limits

Plans are priced per member — Pro is $10 per member a month, Team is $15 — and your allowances grow with every member you add. Pro and Team have no limit on the number of apps; what's metered is usage. A Pro workspace gets 250K requests and 25 GB of bandwidth per member each month, so ten members get 2.5M requests and 250 GB. The Free plan is a flat allowance for up to 3 members: 5 apps, 100K requests and 5 GB of bandwidth a month.

Storage per app and upload size are fixed by plan. When a workspace reaches its monthly requests or bandwidth, visitors see a "limit reached" page until the 1st (UTC) or until you add members or upgrade. Past 50 members, workspaces move to a custom plan — email hello@doclet.cloud. Usage is on the workspace's Usage page.