Introduction
Your Postgres. Your content. Your CMS. A composable, Git-like headless CMS for TypeScript.
@createcms/core is a headless CMS you define in code. You declare your content as typed collections of blocks, generate a database schema from those definitions, and get a fully type-safe server API and client in return. It is built on better-call and Drizzle ORM (PostgreSQL).
Work in progress — not production-ready. createCMS is pre-1.0, under active development, and has not been tested in production. Expect breaking changes and bugs; use it for prototypes, not production. Pin an exact version.
Why it exists
Your app already owns its database. createCMS installs from npm and keeps content, history, and API in your Postgres: branches, drafts, diffs, and publish as first-class APIs. Typed content and a Git-like API, living in your Postgres. Build your CMS into your app, not your app into a CMS.
What makes it different
Your collection definitions are the single source of truth. They drive the database schema, the write API, the shape of read responses, and the client, so there are no hand-written types to keep in sync. Content lives in your Postgres with Git-like versioning: every entry is a root with branches and commits, so editors can draft on a branch, open a merge request, diff, and publish. The core is framework-agnostic, with first-class helpers for Next.js and React.
Features
Block-based content
Define collections as a typed root plus child blocks. Content is a tree of blocks.
End-to-end type safety
Definitions drive the write API and the read responses. Autocomplete on properties everywhere.
Git-like versioning
Branches, commits, merge requests, and publishing for every content entry.
Plugins
Optional plugins for multi-tenant, i18n, A/B testing, consent, and media optimization.
When to use it
- You want content modeling in TypeScript with no separate schema language, and a type-safe API derived from it.
- You need editorial workflows (drafts, review, publishing) backed by your own PostgreSQL database.
- You are building on Next.js or another React framework and want to render structured content yourself.
It is not a turnkey hosted CMS with a prebuilt admin UI: you bring the database, the auth, and the rendering.
Ready to build? Start with the Quickstart.