What is a headless CMS 🤔 for makers of the web

TLDR: It's a CMS with an API. Front-end developers who use React and like-minded tools seem to accept this new concept

[Reading time: 5 minutes, ≈500 words]

  • A headless CMS – a CMS with an API – is an alternative to an "old school" CMS, like WordPress or Drupal
  • It’s used by developers and marketers who run websites or apps – and other people who make stuff for the internet
  • Read on to find out: what’s good about headless, how is it different, who should care, why, and what's the best headless CMS

What is a headless CMS (short answer)

A headless CMS contains at least 2 core components:

  1. A web app for creating/editing/publishing content
  2. An API that enables front-end developers to get the content from a CMS into their projects 
  3. [optional] A CDN that takes care of content storage and delivery

What's a typical use case for a CMS

(Most likely you know this already, but it's worth clarifying for the readers who don't)

Simply put, to edit content on the internet:

  • As a developer, you're building or managing a website or an app that contains some content
  • You want to enable marketers, content managers, editors, and other non-technical users to create and edit content independently
  • To make it possible, you integrate a CMS into your project – a separate app (typically a web app) where all content work will happen

How does a traditional CMS work

They tightly control the way content ends up looking which results in a development mess when you're building something very custom

  • A CMS like WordPress would provide the editing application for managing content
  • But it also would fully control the front-end of your website – the way the content is displayed is largely defined in a CMS
  • It means that to change how the website works, you (as a developer) can only work in the language in which the CMS is written (read: in PHP) to modify the existing views or templates
  • It also means that this kind of CMS is primarily suitable for websites, and not so much for web or native apps

How is a headless CMS different

There's no front-end in a headless CMS. It doesn't know and doesn't care how you'll display words and pictures in pages and views.

  • With a headless CMS, the front-end of your project is not a part of the CMS anymore. A headless CMS has no control over the way the content is presented.
  • In other words, you don't get a website out of the box with a headless CMS. It might sound like it's a bad thing, but in fact it isn't.
  • Unlike a "traditional" or "monolithic" CMS (like WordPress or Drupal), a headless CMS focuses exclusively on 1) content management workflows 2) content accessibility through code 3) content storage and delivery

How and why a headless CMS is good

  • It aims to do fewer things – which raises the chances of doing them well
  • It enables front-end developers to use any technology, framework and programming language create websites, apps, and other digital projects
  • It enables marketers and content managers to produce new content independently

When does it make sense to use a headless CMS

(And when it doesn't)

A headless CMS is not for every project in the world. But it plays exceptionally well when a few conditions are met:

  • The project involves building custom design: often there's no reason to use headless if the same can be accomplished with template-based visual website builders
  • There is a need in regularly creating and updating content
  • There is at least 1 front-end developer on the team: it's impossible for non-technical teams to launch a project with headless on their own
  • The project contains reasonably large amount of content: an e-commerce store with 50+ product pages is a good fit; a personal 1-page website – not so much

What are the alternatives to a headless setup

  • Traditional old-school CMS: WordPress, Drupal, etc. If there's no direct benefits that you gain from a headless setup, there's little reason to switch.
  • Custom-made CMS: Please do yourself a favour and don't do this. It feels very tempting to build your own CMS. After all, it's very simple and will take only 2 weeks. Spoiler: it's not, and it won't. "Every tech company I know tried to build their own CMS at a certain point. They regretted it later." -- Anonymous Reddit user
  • Hardcoded content: Works fine for developers. Works fine if the content isn't changed often. Doesn't work at all when a marketer on an editor needs to be able to change things on their own. Use carefully.

What is the best headless CMS

And how to find one for your project

Surprise: there's none. As obvious as it sounds, everything depends on a specific project and its goals.

The best thing that you can do to find a good one for your needs is to define the criteria that make sense for you and then do your own research.

Here are some to get started:

  • Hosting & maintenance. Are you looking for a cloud-hosted tool or do you want to host and maintain the servers yourself?
  • SDKs. Are your preferred tools and languages supported by the CMS?
  • Docs. Is it easy to get started and find your way around?
  • Editing app features. Does it cover the needs of your marketing/content teams?
  • API features. APIs can greatly vary in terms of their functionality, so it pays off to define what you expect from it upfront.
  • Support. Will the people who created the CMS be able to help you if/when something goes wrong?
  • Price. Paid, free, or open source?

Full disclosure: This article is produced by Prismic, a CMS with an API and a CDN that aims to simplify editing content on the internet and to make work enjoyable for developers, marketers, and content teams. See the Prismic FAQ for an intro to Prismic.

Take a look at the docs to understand 🥁 what it's like to build stuff with Prismic

Go to the docs

See some real projects made with Prismic 💪 by companies like

The Sun eBay Levi's New Relic BNP Paribas
See use cases