One word per thing
Five words in this product have been used for more than one thing, and each overlap has cost somebody an hour. This is the register. A word not on this list is not a product term, and a term on this list means exactly what it says here — in the UI, in the CLI, in the specs and in commit messages.
Installation
Section titled “Installation”One deployment of Dee Wan. An admin Worker, an admin UI, a control database, and the accounts and credentials behind them. Created once by the installer.
- The thing
npm run setupproduces. - Has ONE control database, ONE claim link, ONE set of superadmins.
- Serves many sites.
- NOT “an install of a site”. A site is not installed; it is created.
Related but distinct: installer is the engine, and it has two interfaces — the web installer and the CLI installer. Both drive the same engine.
One tenant inside an installation. A name, a slug, a hostname, its own content, its own languages, its own roles and grants.
- Created through
POST /api/sites, never through the installer. - Under the per-site topology a site also has its own content database;
under the shared topology it shares the installation’s one. Which one it has is
a row in
site_binding, not a property of the word. - NOT a Cloudflare “site” or a zone. When the Cloudflare object is meant, say zone.
Publishing
Section titled “Publishing”Making one piece of content readable by the public read worker. A content lifecycle transition; nothing to do with infrastructure.
publish/unpublish, per content item, per locale group.- Changes what
/api/…on the public hostname answers. Changes no code, no binding, no deployment. - NOT “publishing the site”. A site is not published; its content is.
Graduation
Section titled “Graduation”Generating a standalone, typed backend project from a site’s content model. Source code emission, and only that.
IN CUSTOMER-FACING UI, SAY “GENERATE STANDALONE BACKEND”. Nobody outside this
repository knows what a site graduating means, and the word describes the
mechanism rather than what the person gets. graduation stays as the internal
technical term — module names, CLI scripts (npm run graduate), specs, commit
messages, this register — and never appears in a screen, button, toast or error
sentence an adopter reads. scripts/check-vocabulary.mjs fails CI on a
user-visible string that breaks this rule.
npm run graduatewrites a project: Prisma schema, migrations, a Worker, awrangler.jsonc, typed routes.- The output is detached — it knows nothing about the installation that produced it, and calls nothing back (SPEC.md §13.1).
- Graduation deploys nothing.
graduate:alldeploys nothing either. - NOT a migration, NOT an export, NOT a deployment. It is code generation.
Deployment
Section titled “Deployment”Getting a specific revision running on Cloudflare. Two different things wear this word, and they are kept apart by what they act on:
| Term | Acts on | Command |
|---|---|---|
| installation deployment | the admin Worker and admin UI | npm run deploy |
| site deployment | one graduated site’s own Worker and D1 | the Deploy button, via CI |
- A site deployment is the CI pipeline of SPEC.md §13.1: mint a build
credential, regenerate generator-owned files, append a migration, migrate D1,
deploy that revision, verify, report back.
site_deploymentis the row that records it. - NOT graduation. Graduation produces the code a deployment runs.
Provisioning
Section titled “Provisioning”Creating the Cloudflare resources a thing needs, and recording that it exists.
- Installation provisioning: D1, R2 or Images, Pages, DNS — what
setupdoes. - Site provisioning:
create → migrate → bind → redeploy → verifyfor a site’s own content database, recorded inprovision_attempt/provision_ledger. - Always ledgered, always resumable, never inferred from a name.
- NOT installation, NOT deployment. Provisioning makes the resource; deployment puts code on it.
Words we do not use
Section titled “Words we do not use”| Avoid | Because | Say |
|---|---|---|
| “tenant” in the UI | it is an implementation word; operators think in sites | site |
| “instance” for a deployment | content_instance is a row, and it is everywhere |
installation |
| “migrate” for content import | migrate is schema migration |
import |
| “export” for graduation | export is content leaving; graduation is code arriving | graduate |
| “sync” | it has meant four things | name the direction |
| “graduate” in the UI | it names a mechanism, not what the adopter gets | generate standalone backend |
| “workflow” for a site with review off | there is no review to be in | publish / unpublish |