tools / 08 — updated may 2026

Best headless CMS for indie SaaS and content sites

Five ways to give non-developers a place to write copy without breaking your build. Picked for free-tier credibility, framework integrations, and editor UX that doesn't make you apologize to your team.

5 CMSes · free → $99+/mo · updated may 2026
tldr.txt — tools/headless-cms.mdour pick
$cat tldr.txt

Sanity if you want the most polished content-modeling experience and a generous free tier. Payload if self-hosting on your own Postgres is non-negotiable. Notion if your editor IS your CMS.

Updated May 2026see how we picked →
the list / 5 tools

The list

Fiveplatforms, ordered editorially — top of list isn’t “best,” it’s the shape that fits the most indie creators. Each card has the verdict tag, the pricing receipt, and the honest fit / skip lists. Affiliate links are disclosed.

01

Sanity

Sanity.io
our pick

Real-time collaborative content platform. Schema-as-code, generous free tier, GROQ query language. The default for content-heavy product teams.

pricing.txt — sanitymonthly
Free3 users · 100k API requests/mofree
Growth10 users · 500k requests$99/mo
Enterprisecustom · SLA · SSO$$$
use for
  • Your content needs are genuinely structured (multi-language, references, complex page builders).
  • Schema-as-code is your shape — version-controlled, type-safe content models.
  • Real-time collaborative editing matters — Sanity Studio is best-in-class for this.
  • Free tier covers production for small teams (3 users, 100k requests/mo).
  • GROQ as a query language is acceptable — it's powerful but framework-specific.
skip for
  • Self-host is non-negotiable — Sanity is cloud-only.
  • Your editors are non-technical and Sanity Studio's complexity overwhelms them — Notion is friendlier.
  • You only have a few static pages — overkill, use TinaCMS or just MDX in repo.
02

Payload

Payload Inc.
self-host pick

Open-source, code-first, TypeScript-native CMS. Self-hosted on your own Postgres or MongoDB. Headless or admin-shaped — covers both.

pricing.txt — payloadmonthly
Self-hostMIT · Postgres or MongoDBfree
Cloud Standard$35/mo · 1 project$35/mo
Cloud Pro$199/mo · production-grade$199/mo
use for
  • Self-host is the deciding feature — your content lives in your database.
  • TypeScript-native: schemas, hooks, plugins — all typed end-to-end.
  • You want a CMS that can also be a full admin panel (Payload's Admin UI is real).
  • Postgres is your database — Payload writes natively to it without proprietary infra.
  • Cost matters at scale — self-hosted Payload is free regardless of volume.
skip for
  • You don't want to operate anything — Payload self-host is real ops work.
  • Your editors are non-technical and want Notion-style ergonomics.
  • You want a managed-only experience — Payload Cloud exists but is younger than Sanity's hosted product.
03

TinaCMS

Tina · open source
git pick

Git-based CMS — content lives in your repo as MDX or JSON. Editors get a visual UI; engineers get the file system. The 'Markdown but with a UI' choice.

pricing.txt — tina-cmsmonthly
Freeopen source · 2 users on cloudfree
Cloud Pro$29/mo · 5 users$29/mo
Cloud Business$99/mo · 15 users$99/mo
use for
  • Your content is documentation, blog posts, or marketing pages — not complex relational structures.
  • MDX or Markdown in repo is your shape — content versions with code in git.
  • Editors want a visual UI but you want files in the codebase.
  • Self-host as Cloud Free — generous free tier for small projects.
  • Astro / Next.js / Remix are your framework — Tina integrates cleanly.
skip for
  • Multi-language content with deep references — Tina's git-based model strains under that complexity.
  • Real-time collaborative editing matters — Sanity is the answer there.
  • Your team isn't comfortable with git as the source of truth for content.
04

Notion

Notion Labs
editor pick

Knowledge-base / docs / wiki tool with a public API. Common pick when 'the editor is the CMS' — your team writes in Notion and the API publishes to the website.

pricing.txt — notionmonthly
Freepersonal use · API access includedfree
Plus$8/user/mo · team workspace$8/usr
Business$15/user/mo · advanced features$15/usr
use for
  • Your team already writes in Notion daily and you want that to be the CMS.
  • You're publishing a blog, changelog, or docs site where the content shape is editor-friendly text.
  • Speed-to-launch matters — pull from Notion API, render with your framework, you're live.
  • Non-technical editors are the primary content authors — Notion's UX is the friendliest in this set.
  • Free tier (personal) is enough for many indie content sites.
skip for
  • API rate limits matter — Notion's API is rate-limited and not designed for high-traffic sites without caching.
  • You need structured content modeling — Notion is documents-with-blocks, not schemas-with-references.
  • Notion goes down or changes API behavior and you can't tolerate that risk for your public site.
05

Contentlayer

Contentlayer (open source)
MDX pick

Type-safe MDX for Next.js. Files in repo, types generated at build. Not a CMS in the editor sense — a content layer for Markdown-shaped sites.

pricing.txt — contentlayermonthly
Libraryopen source · MITfree
Filesin your repo$0+
use for
  • Your content is MDX in the repo — no separate CMS UI needed because the editor is your code editor.
  • Type-safe content access matters — Contentlayer generates types at build time.
  • Your authors are technical and writing in Markdown is the right authoring model.
  • Documentation sites, dev blogs, marketing-content-with-code-snippets are the shape.
  • Bundle size matters — Contentlayer outputs static-resolved content, no runtime CMS calls.
skip for
  • Non-technical editors need to update content — they shouldn't be opening a code editor.
  • Real-time collaborative editing or visual page-building is the goal.
  • Multi-author workflows with review/approval — git PR workflow doesn't fit non-engineering content teams.
scoreboard / category matrix

Category scoreboard

Six dimensions, 5tools. The olive dot marks the clear winner per row when there is one — most rows have multiple credible answers. Use this for shape-spotting, not for ranking.

dimension
Sanity
Payload
TinaCMS
Notion
Contentlayer
Free tier
3 users · 100k req
self-host · forever
open-source · 2 users
personal · API access
library · forever
Cheapest paid tier
$99/mo · Growth
$35/mo · Cloud
$29/mo · Cloud Pro
$8/user · Plus
free · self-host
Self-hostable
no · cloud only
yes · MIT
yes · OSS · cloud opt
no · SaaS only
yes · build-time
Editor UX
Sanity Studio · powerful
Admin UI · TS-shaped
visual + code
Notion · friendliest
no UI · code editor
Content shape
schemas · references
schemas · TS-typed
MDX / JSON in repo
documents · blocks
MDX in repo
Framework integration
any · GROQ + REST
Next.js + any
Next.js · Astro · Remix
any · API-shaped
Next.js native
decision / when to pick which

When to pick which

Five user shapes, fivepicks. The right answer depends on what you’re optimizing for — revenue model, content shape, growth lever, ownership appetite.

  1. Content-heavy site with structured data, multi-language, references
    Sanity

    If your content is genuinely structured (a marketing site with case studies, products, team bios, all referencing each other), Sanity's schema-as-code + Sanity Studio is the most powerful answer. Free tier covers small teams; $99/mo Growth scales with team size, not content volume.

  2. Self-hosted, TypeScript-native, lives in your Postgres
    Payload

    If self-host is non-negotiable and you want a CMS that lives in your existing Postgres + integrates with your Next.js + admin UI built in, Payload is the answer. Trade ops time for control. Cloud Pro ($35/mo) exists if you'd rather not operate it.

  3. Marketing pages, MDX, content lives in git
    TinaCMS

    If your content is git-shaped (blog, docs, marketing pages) and you want editors to have a visual UI without losing the file-system, TinaCMS's Cloud free tier handles small projects. Skip if your content has complex relational structure — Sanity is the right tool there.

  4. Editor IS the CMS — team writes in Notion, site renders from API
    Notion

    If your team lives in Notion and the workflow 'write a doc, hit publish' is the dream, Notion + a few caching layers is genuinely productive. Common for blogs, changelogs, internal docs published externally. Beware rate limits.

  5. Technical authors writing MDX with type-safe access
    Contentlayer

    If your authors are engineers and the right content shape is MDX-with-frontmatter in the repo, Contentlayer gives you generated types at build time and zero runtime cost. Best for dev blogs, documentation sites, marketing-with-code-snippets. Not a CMS for non-technical editors.

honest mentions / runners-up

Honest mentions

Tools that show up in adjacent searches but didn’t make the editorial five. Listed for context — not a recommendation, not a takedown.

  • Strapi

    Older, well-known open-source CMS. Heavier than Payload, Node.js + their own admin UI. Pick if you have a Strapi-shaped team already; otherwise Payload is the lighter modern alternative.

  • Contentful

    Enterprise-tier headless CMS. Mature, expensive, built for large content teams. Indie projects rarely justify the cost; mentioned for context when comparing against Sanity.

  • Hygraph (formerly GraphCMS)

    GraphQL-first headless CMS. Solid product, smaller market share than Sanity/Contentful. Pick when GraphQL-first is the deciding factor.

  • Storyblok

    Visual editor + headless CMS. Strongest in 'live preview' workflows where editors want to see the rendered page during editing. Less developer-friendly than Sanity.