ApostropheCMS
In-context editing CMS built on Node.js
ApostropheCMS is an open-source Node.js content management system known for its true in-context editing experience. Editors build and arrange pages visually while developers extend it with modules.
Key features
- True in-context editing
- Drag-and-drop layouts
- MongoDB-backed content
- Headless mode available
Pros & cons
Strengths
- Intuitive editing for content teams
- Flexible module system
Trade-offs
- Requires MongoDB
- Smaller plugin ecosystem
ApostropheCMS replaces
Last reviewed Sep 13, 2026 · 765 words
If you want to install a CMS on Sunday afternoon, pick a theme, and be publishing by dinner, ApostropheCMS is the wrong tool and you should be looking at Ghost. Apostrophe is a framework for developers who build sites for editors: you write page types, widgets and content pieces in JavaScript, and in return your editors get the one feature almost no open-source CMS delivers well, which is editing the page on the page. Click a headline, type, click a column, drag a widget into it, publish. For a content team that has been suffering through a form-based admin panel, that is worth the developer time it costs.
In-context editing is the whole pitch
Most headless and traditional CMSs give editors a form with fields and a preview button. Apostrophe renders the real page with the real templates and overlays editing controls on it. Areas are regions of a template that accept widgets (rich text, images, video, your own custom ones); editors add, reorder and configure them inline. Pieces are structured content types like articles, people or products with their own index pages. The admin UI is Vue, templates are Nunjucks, and everything is a module you extend.
The trade is that a developer has to build those templates and widgets first. There is no theme marketplace to speak of, and the module ecosystem is small next to WordPress or even Strapi. What you get is a site whose editing experience matches your design exactly, rather than a generic one you bend into shape.
MongoDB, Node and the hosting shape
The stack is Node.js with MongoDB as the only database option, plus a file store for uploads (local disk by default, S3-compatible via uploadfs for anything with more than one server). Starting a project:
npm install -g @apostrophecms/cli
apos create my-site
cd my-site && npm run dev
The dev server sits on port 3000. For production, run the Node process under a process manager or in a container, MongoDB alongside, and a reverse proxy in front for TLS. 512 MB of RAM is a realistic floor for a small site with MongoDB included; a busy editorial site with image processing wants 1 to 2 GB. MongoDB is the part most homelabbers wince at because it is the only thing in their stack that is not PostgreSQL. Back it up with mongodump and back up the uploads directory separately; the two together are the whole site.
Upgrades are npm version bumps with migrations that run at startup. The core has been open source since 2013 and MIT-licensed throughout; the company behind it sells hosting and a Pro tier with advanced permissions, multisite and document versioning, and the open core is genuinely complete for a single site without them.
Headless works, but it is not why you would choose it
Apostrophe exposes a REST API for every piece and page type and can run as a pure headless backend for a React or Astro front-end. It does it competently. It is also the point where you should ask whether you need Apostrophe at all, because Strapi, Directus and Payload are built headless-first, have bigger communities, and give you PostgreSQL or SQLite instead of MongoDB. Apostrophe's advantage evaporates the moment the editor is no longer looking at the rendered page. Use it headless only when the same site also has server-rendered pages that editors touch.
Who actually runs it
Agencies building marketing and editorial sites for clients with in-house editors, universities and nonprofits with a small dev team and a large content team, and companies that tried a headless CMS and found their editors hated the preview loop. That is a real niche, and Apostrophe has held it for over a decade. It is not a hobbyist CMS, and the 4,600-star count understates a project that mostly lives in agency work rather than on GitHub.
What I'd do
For a marketing or editorial site built by a developer for a team of editors who care about layout, Apostrophe is the strongest open-source answer to Squarespace that I have seen, and the Squarespace switching guide covers the wider field. Budget a week of development for the first templates, run MongoDB with nightly dumps, and skip the Pro tier until a second site or a permissions problem forces it. For a personal blog, a documentation site, or anything API-first, pick Ghost, Strapi or Directus; the CMS category page lays out which is which.
Compare ApostropheCMS
10 head-to-head comparisons.
Similar content management systems apps
Ghost
Content Management SystemsProfessional publishing platform for blogs and newsletters
Replaces WordPress, Substack
Payload CMS
Content Management SystemsTypeScript-native headless CMS and application framework
Replaces Contentful, Sanity
Docsify
Content Management SystemsDocumentation site generator
Replaces GitBook
WordPress
Content Management SystemsThe most popular content management system in the world
Replaces Wix, Squarespace
Wagtail
Content Management SystemsDeveloper-friendly Django CMS with a great editor experience
Replaces Adobe Experience Manager, WordPress
Grav
Content Management SystemsFast flat-file CMS with no database required
Replaces WordPress, Squarespace