What is NodePress?
NodePress is an open-source headless CMS that you host yourself. You define the shape of your content in an admin panel, your team writes and publishes it there, and your website, app or anything else reads it through an API.
It takes ideas from WordPress with ACF (flexible content, repeaters, plugins) and from Strapi (content types and APIs generated for you), and runs on a modern TypeScript stack:
| Part | Built with |
|---|---|
| API server | NestJS, Prisma and PostgreSQL |
| Admin panel | Next.js 15 (App Router), Tailwind and Radix UI |
| Optional | Redis (cache and multi-instance), S3-compatible storage, Meilisearch, SMTP |
Headless, in one minute
Section titled “Headless, in one minute”A traditional CMS stores your content and renders your pages. A headless CMS only stores and serves the content; what you build the frontend with is up to you.
┌──────────────────┐ define & edit ┌──────────────┐│ Admin panel │ ─────────────────▶ │ NodePress ││ (your team) │ │ + Postgres │└──────────────────┘ └──────┬───────┘ │ REST · GraphQL ┌───────────────────────┼───────────────────────┐ ▼ ▼ ▼ Next.js site Mobile app Anything elseCreate a content type called blog, and GET /api/blog serves its published posts straight away. You don’t write any backend code.
What you get
Section titled “What you get”- Content modeling in the admin: 15 field types, including repeaters, groups and flexible page-builder blocks nested up to three levels deep, plus reusable components and shared choice lists.
- APIs for every content type: REST with filtering, sorting, cursor pagination, full-text search and relation population, plus a typed GraphQL schema and OpenAPI docs that rebuild when you change a schema.
- Editorial workflow: drafts, staging, scheduled publishing, version history, content releases, multiple languages and live preview of your own site.
- Access control: roles and custom roles, per-content-type and field-level permissions, scoped API keys, single sign-on (OIDC) and two-factor authentication.
- Media: uploads with WebP versions, focal points, on-the-fly image transforms, and local or S3-compatible storage.
- Extending: plugins with lifecycle hooks, signed webhooks, forms with email and webhook actions, and a JavaScript client.
- Production basics: Redis caching, CDN purging, read replicas, Prometheus metrics, audit logs, backups and Docker setups.
When NodePress fits
Section titled “When NodePress fits”NodePress is a good fit when you want:
- your content in your own PostgreSQL database, on your own servers;
- editors to change content structure in a UI, without a deploy;
- one content source for several frontends (website, app, kiosk);
- a codebase you can read and change: it’s MIT licensed TypeScript.
If you want a hosted service with nothing to run, or a CMS that also renders your site’s pages, a SaaS CMS or a traditional CMS will suit you better.