Skip to content
Glossary

What Is a Headless CMS?

A headless CMS manages and stores content without dictating how it's displayed — it delivers content via API to any frontend: web, mobile, digital signage, or voice interfaces.

A headless CMS is a content management system that stores and structures content but does not render it. Instead of producing HTML pages itself, it delivers content over an API to any frontend you build — a website, a mobile app, a kiosk, a smartwatch, or a voice assistant.

The name comes from the architecture: the "head" is the presentation layer (the HTML and the browser). A headless CMS has no head. It is a pure content backend.

How it differs from a traditional CMS

A traditional CMS like WordPress couples two jobs that a headless CMS deliberately splits apart: storing the content, and deciding how it looks. In WordPress, a theme controls both the data and the markup, so the same system that holds your blog post also dictates the HTML it ships. A headless CMS keeps only the storage-and-structure half and hands rendering to whatever frontend you choose.

Traditional CMSHeadless CMS
RenderingBuilt in (themes)Your own frontend
Content deliveryHTML pagesAPI (REST or GraphQL)
Frontend lock-inHighNone
Reuse across channelsHardNative
Editor experienceMature, all-in-oneVaries by platform

How it works

  1. You define content models — the shape of a blog post, a product, an author.
  2. Editors fill in those fields through an admin UI, with no code involved.
  3. The CMS exposes that content as JSON over a REST or GraphQL API.
  4. Your frontend fetches the JSON and renders it however you want.

With Next.js, content is usually pulled at build time (static generation) or refreshed on a schedule (incremental static regeneration), so pages serve as fast static HTML while still staying current.

Common platforms

  • Sanity — flexible schemas, real-time collaboration, the GROQ query language.
  • Contentful — large API surface, common in bigger content teams.
  • Strapi — open-source and self-hostable, so you keep your data.
  • Payload CMS — TypeScript-native and can live inside the same Next.js codebase.

When a headless CMS is the right call

  • The same content has to appear in more than one place — web, mobile app, and email — without being copied by hand.
  • Non-technical editors need to publish without touching code or waiting on a developer.
  • You want a custom frontend (for example Next.js) rather than a fixed theme system.

When it is overkill

For a small blog or marketing site where a single developer writes and ships all the content, a headless CMS adds a moving part for no real gain. Plain Markdown or MDX files committed to a git repo are simpler, version-controlled, and free — every edit is tracked, and there is no separate service to host or pay for. Reach for a headless CMS when other people need to edit, or when the content has to feed several channels at once.

Common mistakes

  • Choosing headless for a one-channel site. If the content only ever appears on one website that one developer maintains, the API layer is pure overhead.
  • Modeling content around one page layout. The point of headless is reuse; if your fields are named after a specific design, you lose that flexibility the moment a second frontend appears.
  • Forgetting the build/refresh strategy. Decoupling content from rendering means you must decide how often the frontend re-fetches. Skip this and editors publish changes that never show up.

A concrete example

Suppose a booking product needs the same "property description" inside a Flutter mobile app, on a marketing website, and in confirmation emails. A headless CMS stores that description once and serves it to all three over an API. Edit it in one place and every channel updates — no triple maintenance, no drift between app and site.

Key takeaways

  • A headless CMS separates content storage from presentation and ships content via API.
  • Use it for multi-channel content or non-technical editors; skip it for a single developer-run site, where Markdown in git is simpler.
  • It pairs naturally with frameworks like Next.js, which fetch content at build time or on demand.

Weighing whether headless is worth it for your project? I'm a full-stack developer who builds custom frontends and content-driven apps — contact me for a quote and an honest recommendation on whether you need one at all.

Continue reading

Want this built?