A self-hosted CMS for developers: model content in a visual editor, publish with live preview and releases, and deliver it over REST, GraphQL and real-time events.
- Role
- Design, engineering, docs
- Built with
- NestJS · Next.js · PostgreSQL · Prisma · GraphQL · Socket.io · Docker
Own your content, outright.
Most headless CMSs make you rent your content, or keep the features that matter for an enterprise plan. I wanted one you host yourself — that editors still enjoy using.

A schema editor that respects your data.
15 field types, reusable components and conditional fields. Rename or convert a field and every existing entry is migrated in the same transaction.

Enterprise workflow, in the box.
Live preview, releases, version history, SSO and permissions down to single fields — per role, per module, per content type.

Every type is an API on save.
REST with nested filters, a typed GraphQL schema that rebuilds itself, real-time events and signed webhooks — plus a typed client. This site reads its content with it.
import { createClient } from '@nodepress-cms/client';
const cms = createClient({ url: process.env.NODEPRESS_URL });
const { data } = await cms.collection('project').list({
where: { featured: { eq: true } },
sort: 'createdAt:asc',
});