Skip to Content
New to cms0? Start with the hosted, self-hosted, or app integration path.
ReferenceHow cms0 works

cms0 keeps the content contract in your app code.

Flow

Define a schema

You define a TypeScript schema in the file that calls cms0<T>().

Publish a descriptor

The CLI reads that file, creates a descriptor, and publishes it to a hosted environment or self-hosted admin.

Edit content

cms0 builds editor screens and runtime routes from the descriptor.

Read from the app

Your app reads saved content through the typed client from @cms0/cms0.

Why the schema starts in code

The TypeScript schema gives your app and the editor the same contract.

That keeps common failures visible during development:

  • renamed fields
  • missing required content
  • collection shape changes
  • rich field type changes

Hosted and self-hosted

Hosted workspace users manage projects and environments in the cms0 app.

Self-hosted users run @cms0/admin and point apps directly at that admin runtime.

The app integration model is the same in both cases: one API base URL and one API key.

Moving between hosted and self-hosted changes the runtime URL, not the @cms0/cms0 app integration pattern.

Success check

If a field exists in TypeScript, appears in the admin UI, and can be read from your app, the full cms0 loop is working.