cms0 is a type-first content system for JavaScript and TypeScript apps.
You define content in code, publish that shape into cms0, edit content in the admin UI, and read the result from your app through @cms0/cms0.
Set up your first workspace or admin instance, publish a schema, and read content from an app.
Start hereUse projects, environments, API keys, endpoints, billing, and usage limits from the hosted cms0 app.
Hosted workspaceRun @cms0/admin with your own Postgres, storage, auth, backups, API keys,
triggers, and usage views.
Install @cms0/cms0, define typed content, and use framework-specific
environment setup where it matters.
How cms0 fits together
cms0 has three parts:
@cms0/cms0: the package you install in your app. It provides the typed client and thecms0CLI.@cms0/admin: the admin app for self-hosted teams.- The hosted workspace: the cms0 app for organizations, projects, environments, billing, and limits.
Hosted and self-hosted setups use the same core loop:
- Create or open a runtime.
- Create an API key.
- Define content with TypeScript.
- Run
cms0 devwhile building locally. - Run
cms0 buildin CI or before deploy. - Edit content in cms0.
- Read content from your app.
Pick a path
- Use Start here if you want the shortest working path.
- Use Hosted workspace if you already have an account and need to find projects, environments, API keys, or endpoint URLs.
- Use Self-hosting if you run
@cms0/adminyourself. - Use App integration if you are wiring cms0 into an existing app.