Headless CMS are a relatively new concept. Let's discuss how they differ from a traditional CMS and what problems they solve. In addition, let's look at the different flavors of headless CMS: git-based and API-based.
Limitations of the Traditional CMS
The traditional CMS tightly coupled the backend (i.e. where you create and manage the content) with the frontend (i.e. where your visitors view the content you created).
These CMS were created to manage web page content, meaning that the content created in the backend was also tightly coupled with its display on the web. This meant that content was not typically reusable. A headline on the home page might be duplicated for display on a landing page - and updating one did not update the other. Because the content was specifically intended for the web, it also could not be reused in things like a mobile app.
In addition, the traditional, coupled CMS wasn't designed for the Jamstack. In most cases, pages on a traditional CMS were server rendered and thus unable to take advantage of the improved speed and security the Jamstack architecture offers.
Why Headless CMS?
Headless CMS were created to help resolve these issues. A headless CMS essentially provides only the backend (i.e. where you create and manage the content) of content management. A headless CMS can manage content irrespective of the frontend output and typically allows content items, like the theoretical headline we discussed above, to be reused both across the web app but also in things like mobile apps, chat apps, voice apps, etc.
There are many headless CMS providers, but they all generally fall into one of two categories: git-based CMS and API-based CMS. Let's explore the differences.
Git-based Headless CMS
The key thing to understand about a git-based headless CMS is that it does not store your content. Instead, content is maintained in a Git repository - often as Markdown for long-form content and YAML or JSON for data. The CMS provides a layer of tooling for managing this content via a web interface that is easy to understand for content editors who may be uncomfortable manually editing the file-based content.
Popular git-based solutions include Netlify CMS and Forestry.
API-based Headless CMS
An API-based headless CMS does store your data, which can then be accessed by the web site, mobile app or other application via an API. Because content in API-based headless CMS is not tied to physical files, they generally are able to more easily handle reuse of content objects than a git-based CMS.
Popular API-based solutions include Contentful, Sanity and DatoCMS.
If you'd like to learn more about headless CMS, check out these resources: