A headless content management system, or headless CMS, is a back-end only content management system (CMS) built from the ground up as a content repository that makes content accessible via a RESTful API for display on any device.
The term “headless” comes from the concept of chopping the “head” (the front end, i.e. the website) off the “body”(the back end, i.e. the content repository).
A traditional CMS is typically a combination of content and presentation layers of the website. A headless CMS is just the content component and focuses entirely on the administrative interface for content creators, the facilitation of content workflows and collaboration, and the organization of content into taxonomies. It doesn’t concern itself with presentation layers, templates, site structure, or design, but rather stores its content in pure format and provides access to other components (e.g. delivery front ends, analytics tools, etc.) through stateless or loosely coupled APIs.
A headless CMS has an interface to add content and RESTful API to deliver content wherever we want. Because of this perspective, a headless CMS does not care where and how you are displaying content. So, the main important work of headless CMS is for storing and delivering content.
Let’s take the WordPress example to convert it into headless CMS. WordPress has the following feature set:
- A database for content operations like read, write, update, delete, etc.
- An admin UI interface for writers and editors to manage the content.
- Integration of reading and writing of content.
- Front-end that merges data from a database with HTML.
To convert a WordPress website into headless CMS we only have to remove the fourth option from the above list i.e. front-end. By doing this we chopped off the head of the CMS. Now only Admin UI(content management) and reading API remain. Now, we got ourselves a headless CMS.
A headless CMS chopped off head therefore the website doesn’t have any design. Now a developer can develop his/her website by any technology he prefers using Content Delivery API of the headless CMS. Another important point is a developer can do his own work without worrying about the bugs present in feature sets of technology.
- You can build a website with technology you are already familiar with. So that saves a lot of time.
- You can develop websites using static site generators.
- You can develop Native Mobile Apps for iOS, Android, Windows Phone.
- You can increase product information on websites like eCommerce.
Headless CMS choice:
WordPress and Drupal are trying to make their way into headless. They offer API by which you can design your front-end design. Below are some other CMS options you might like: Storyblok, Contentful, Prismic.
Coupled CMS vs. Headless CMS:
Most traditional (monolithic) CMS systems are “coupled”, meaning that the content management application (CMA) and the content delivery application (CDA) come together in a single application, making back-end user tools, content editing and taxonomy, website design, and templates inseparable.
Coupled systems are useful for blogs and basic websites as everything can be managed in one place. But this means that the CMS code is tightly connected to any custom code and templates, which means developers have to spend more time on installations, customizations, upgrades, hotfixes, etc. and they cannot easily move their code to another CMS.
There is a lot of confusion around the differences between a decoupled CMS and a headless one because they have a lot in common.
A decoupled CMS separates the CMA and CDA environments, typically with the content being created behind the firewall and then being synchronized and pushed to the delivery environment. The main difference between a decoupled CMS and a headless CMS is that the decoupled architecture is active—it prepares content for presentation and then pushes into the delivery environment—whereas a headless CMS is reactive—it sits idly until a request is sent for content.
The decoupled architecture allows for easier scalability and provides better security than coupled architecture, but it does not provide the same support for omnichannel delivery. Plus, there are multiple environments to manage, hiking up infrastructure and maintenance costs.
Advantages of Headless CMS:
- Multichannel readiness: The content created in a headless CMS is pure and can be used across multiple channels like website, WebApp, mobile app, digital assistant, virtual reality, smartwatches, etc. anywhere and at any time through the customer journey.
- Low operating costs: Headless CMSs are usually cheaper to install and run than their monolith counterparts, especially as they are typically built on a cloud model where multi-tenant options keep the running costs low.
- Reduces time to market: A headless CMS encourages an agile way of working because content creators and developers can work simultaneously, and projects can be finished faster.
- Easy to use: Traditional CMS systems tend to be complex as vendors attempt to offer every available feature in one box. Headless systems focus on content management and thus keeping things simple for those who use it on a daily basis. The entire user experience can usually be managed from within one back end.
- Flexibility: Content editors can work in whichever headless CMS they like and developers can build any kind of front end they want in their preferred language and then simply integrate the two via APIs over RESTful communication. This allows for polyglot programming where multiple programming paradigms can be used to deliver content to multiple channels and enables a company to benefit from the latest developments in language frameworks, promoting a microservices architecture.
- Cloud Scalability: The content purity and stateless APIs of headless CMSs enable high scalability, especially as the architecture fully leverages the elasticity of a cloud platform. System Security: Since the content is typically provided through a high-performance Content Delivery Network (rather than directly from the database), the risk of distributed denial-of-service attacks (DDOS) is reduced.
Disadvantages of Headless CMS:
- Multiple services: Managing multiple systems can be challenging and a team’s knowledge base must cover them all.
- No channel-specific support: Since pure headless CMSs don’t deal with the presentation layer, developers may have to create some functionality, such as website navigation, themselves.
- Content organization: As pure headless CMSs do not typically provide the concept of pages and web sitemaps, content editors need to adapt to the fact that content is organized in its pure form, independently on the website or other channels.
- Marketing empowerment: Marketers may end up relying more on developers in certain scenarios, e.g. creating a landing page with custom layout.
As you know for every use case there is no 100% right way and CMS. But the chopping presentation layer from content makes it accessible for more platforms and that’s what we should be aiming for.