finds.dev← search

// the find

apostrophecms/apostrophe

★ 4,595 · JavaScript · updated Jul 2026

A full-featured, open-source content management framework built with Node.js that empowers organizations by combining in-context editing and headless architecture in a full-stack JS environment.

ApostropheCMS is a Node.js/MongoDB CMS that combines in-page editing (you edit directly on the rendered page, not in a separate admin) with a headless REST API. It's been around since the Meteor era, has a real user base, and version 3 is a proper rewrite. Good fit for agencies building content-heavy sites who want something between WordPress and a fully custom stack.

The in-context editing model is genuinely well-executed — editors click on the page element they want to change, not a field in a sidebar miles away from the visual result. The monorepo structure is mature: separate packages for core, Astro integration, AI helper, anchors, each with their own changelogs and tests. The Astro integration is first-class, not an afterthought — dedicated components, a Vite plugin, TypeScript types. Active maintenance is real: last push was yesterday, changesets are landing regularly.

MongoDB is a hard dependency, which is a dealbreaker for anyone on a Postgres-only stack or who has been burned by MongoDB's document model for relational content. No TypeScript source — the core is plain JS with no type definitions beyond the Astro integration package, so you're flying blind in larger projects. The module/extends system (moog) is powerful but genuinely confusing to learn; the learning curve is steep enough that most teams need to budget real time before they're productive. Pro features like multisite, automated translation, and workflow are paywalled behind a commercial license, so the 'open source CMS' pitch softens significantly once your requirements grow.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →