Apostrophe

cms

Node.js CMS with in-context page editing, a structured content type system, and REST APIs. Built for agencies and teams that need editable, component-driven sites without a headless-only workflow

#cms#nodejs#mongodb#headless#self-hosted
Alternative to WordPressContentfulStrapi

Quick Start

npx create-apostrophe-app my-project && cd my-project && npm run dev

Overview

Apostrophe is a Node.js CMS where content editing happens directly on the page rather than in a separate admin panel. Click on a text block, image, or widget in the browser, and an editing toolbar appears inline. For teams building content-heavy sites, this removes the back-and-forth of a traditional CMS workflow where editors constantly switch between a preview and a dashboard to see what their changes actually look like.

The content model is built around two core concepts. Pages hold the structure of a URL and the layout of widgets on that page. Pieces are standalone content types — articles, team members, case studies, products — that exist independently of any single page. A piece can appear in a listing widget on one page, a featured block on another, and via the REST API in a mobile app, all drawing from the same record. This separation between content and presentation is what makes Apostrophe work well for agencies managing complex site architectures.

The admin UI runs on Vue.js with a live preview mode. Field types cover rich text, images, video, relationships, arrays, and custom types you define in code. MongoDB is the required data store; there is no SQL option, which is a hard dependency to evaluate before committing.

Version 3 (A3) is a full rewrite with a modern async/await codebase, improved performance, and the current REST and optional GraphQL APIs. If you are on an older A2 project, the migration path is substantial enough to be treated as a rebuild rather than an upgrade.

Apostrophe has shipped sites for NASA, Pew Research, and Princeton University. For teams that need a full-stack CMS with in-page editing and a clean content API, it fills a gap between WordPress (PHP, plugin-heavy) and purely headless CMSes that require a separate frontend.

Apostrophe: Pros & Cons

Pros (The Wins)Cons (The Friction)
In-context editing:
Edit content directly on the page;
no separate admin view needed.
MongoDB only:
No SQL support; adds a
database dependency to manage.
Pieces content model:
Reusable content types with
their own API endpoints.
A2 to A3 migration:
Version 3 is a full rewrite;
no smooth upgrade from v2.
REST + GraphQL:
Full-stack and headless modes
from the same install.
Smaller ecosystem:
Fewer modules than WordPress
or Drupal for edge cases.
Vue-powered admin:
Live preview; rich field types
and relationship support built in.
Node.js deployment:
More moving parts than
PHP CMSes on shared hosting.

Use Cases

Specific ways to use Apostrophe for your workflow.

01
Build a marketing site where editors can update content in the page itself without switching to a separate admin panel
02
Create a structured content library of reusable 'Pieces' — articles, team members, case studies — that pull into multiple page templates
03
Deliver a REST or GraphQL API alongside a rendered site so mobile apps and third-party systems read from the same content store
04
Run a multi-locale site where editors manage translations per page through the same in-context interface

Deployment Strategy

Recommended ways to host Apostrophe in your own environment.

docker
self-hosted