finds.dev← search

// the find

CromwellCMS/Cromwell

★ 752 · TypeScript · MIT · updated Jul 2024

WordPress-like CMS for Next.js websites

Cromwell is a headless CMS built on Next.js and NestJS that aims to give WordPress-style content management to TypeScript/React projects. It targets developers who want a visual admin panel and plugin ecosystem without leaving the JS stack. Last commit was July 2024, so it is effectively unmaintained.

The stack choices are coherent — NestJS backend with TypeGraphQL, Next.js frontend, TypeORM for persistence, and MUI for the admin panel all fit together without obvious friction. The plugin architecture is well-structured: each plugin has isolated frontend, backend, and admin entry points with its own migrations, which keeps concerns separated. Multi-database support (SQLite, MySQL, MariaDB, PostgreSQL) is handled at the ORM layer so it actually works rather than being aspirational. The drag-and-drop theme editor backed by a real component tree is a genuinely hard problem that they appear to have solved, not just mocked up.

Development stopped roughly two years ago with 752 stars and a small fork count — the official plugin marketplace and theme store almost certainly no longer function, which is load-bearing for the whole value proposition. The monorepo uses Lerna, which was already in decline when this was active; the build tooling will be painful to upgrade and is likely broken on current Node LTS. There is no documentation of the GraphQL schema beyond what you can reverse-engineer from TypeGraphQL decorators, so building custom plugins means reading source. The ecommerce story depends on PayPal and Stripe plugins that are thin wrappers with minimal error handling and no webhook support visible in the tree — not production-ready for anything real.

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 →