Headless CMS
Where to put structured content for marketing sites and apps.
Self-hostable / open source
- ★ Payload CMS 3 — Node, React admin, Postgres or MongoDB, runs inside your Next.js app. The most popular self-host pick for new TS projects.
- Sanity — proprietary content lake + open-source studio (React). Generous free tier; paid above.
- Strapi 5 — Node, opinionated admin, Postgres/MySQL/SQLite. Mature, large install base.
- Directus — DB-first; point it at your Postgres/MySQL and get an instant API + admin.
- KeystoneJS — TypeScript-first, GraphQL out of the box.
- Tina CMS — git-backed markdown/MDX; visual editor; great for content-as-code.
- Outstatic — markdown CMS that lives in your GitHub repo, no DB needed.
Hosted (free tier)
- Sanity — generous free tier.
- Hygraph (formerly GraphCMS) — GraphQL-first, free tier exists.
- Contentful — large incumbent; small free tier.
- Storyblok — visual editor + API.
- Prismic — slice-based content; free tier exists.
Git-backed / file-based
- Tina CMS — visual editing of markdown/MDX in git.
- Decap CMS (formerly Netlify CMS) — git-backed, simple.
- Outstatic — markdown in your repo.
- Pages CMS — lightweight, GitHub-backed, free.
Database-first (you write SQL, get an admin)
- Directus — closest to "instant admin for your Postgres."
- Forest Admin — admin-as-a-service for any DB.
- Refine — a framework for building admin panels (not a CMS).
- AdminJS — Node admin panel framework.
Pick this if…
- You're on Next.js and want one app: Payload.
- Marketing team needs a polished editor and you have budget for the paid tier: Sanity.
- Content-as-code, git-backed: Tina or Outstatic.
- Already have a Postgres DB, just need an admin: Directus.
- GraphQL-first content: Hygraph or KeystoneJS.