Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
翻訳待ち
Self-hosted headless CMS for frontend developers. Built with NestJS, Next.js, and PostgreSQL.
翻訳待ち
Loading the full README.
Read the full README ↗WordPress — You're maintaining PHP, plugins, and a theme engine for a simple blog.
Contentful — $300/mo for features your project will use maybe 20% of.
Strapi — Spent 4 hours fighting Docker, Node version conflicts, and a half-broken admin UI.
Sanity — Vendor lock-in, CDN pricing surprises, and a learning curve nobody warned you about.
NodePress is different. It's a headless CMS built specifically for frontend developers who need a backend for their clients — not a platform to build a career on.
npx create-nodepress-app my-project
That's it. The CLI scaffolds the project, generates cryptographically secure secrets, installs all dependencies, and tells you exactly what to do next.
Open http://localhost:5173 → fill in a form → you have a working CMS with a REST API, GraphQL API, admin panel, and real-time WebSocket events.
On a server (Linux + Docker), one line — with automatic HTTPS when you pass a domain:
curl -fsSL https://raw.githubusercontent.com/buildwithkode/nodepress/main/scripts/install.sh | DOMAIN=cms.example.com bash
Putting it live for a client? The deploy guides walk through it step by step: your own server (DigitalOcean, Hetzner, Lightsail…) with Docker or without Docker, Railway or DigitalOcean App Platform, and a go-live checklist. Shared hosting (cPanel) can't run NodePress.
From your frontend: npm install @nodepress-cms/client — see the client README. From AI assistants: npx create-nodepress-app mcp (MCP server).
| Feature | What it does |
|---|---|
| Visual content type builder | Define your schema in the UI — no code, no config files |
| Auto-generated REST API | Every content type instantly gets GET, POST, PUT, DELETE endpoints |
| Advanced REST Filter Engine | Nested filtering with operators: where[price][gte]=100, where[tag][in]=a,b, OR & AND logic |
| GraphQL API | Apollo Server with full queries + mutations — entries, content types, webhooks, media |
| Multi-locale (i18n) | Per-entry locale field with ?locale= filtering on all endpoints |
| Side-by-Side Translation Studio | Dual-pane comparative translation workspace with 1-click "Copy Empty Fields from Reference" |
| Content relations | Link entries across types — ?populate=author,author.company ($O(\text{depth})$ batched lookups) |
| Next.js Live Draft Mode | Built-in Next.js App Router Draft Mode integration, signed HMAC tokens & preview banner |
| Field-Level Security (RBAC/PBAC) | Granular readRoles (strip fields from public responses) & writeRoles (protect fields from edits) |
| Bulk operations | Publish, archive, or delete hundreds of entries in one click |
| Export / Import | Download all entries as JSON, re-import to seed or migrate |
| Version history | Every entry save is versioned — restore any previous state in one click |
| Schema versioning | Content type changes are tracked — see exactly what changed and when |
| Field data migrations | Rename or retype a field and existing entries follow — previewed before you save |
| Conditional fields | "Show only if…" rules between fields; hidden fields are never required |
| Reusable components |
This is the beginning of the README. Read the rest at the original. Read the full README ↗
| Define a field set once (SEO, address, CTA) and use it in any content type |
| Two-way relations | Reverse fields list what links to an entry; filter by a related entry's fields |
| Content releases | Publish, unpublish or archive many entries together, now or on a schedule |
| Live preview | Edit an entry and watch your site update beside it; click an element to jump to its field |
| Redirects | 301/302/410 manager with CSV import, plus automatic redirects when a slug changes |