CMSstash

Headless and Decoupled CMS

Headless, decoupled, or API-based Content Management Systems are pretty en vogue nowadays. But what does decoupled mean and which CMS are explicitly headless? This article provides an overview.

Over the last few years, there has been some buzz about so-called "headless" or "decoupled" CMS, a "headless" CMS architecture, or an "API-based" content management system. These buzzwords are mostly used in contrast to traditional, now-called "monolithic" CMS. But what does that mean?

Explanation of decoupled and headless CMS First of all, "headless" or "decoupled" refers to a special technical architecture, not only to a specific product. It is possible to create a headless architecture with a traditional CMS, like WordPress or Drupal, as long as it provides a robust API. But to get our heads around this concept, let's start with a classic differentiation.

A traditional CMS provides both, a technical backend to store and to deliver the content and the frontend technology that provides a user interface to create content and a template engine to display that content with a website theme. Both systems, the backend and the frontend, are usually coupled in one product and in one technical code base.

A headless or decoupled CMS completely separates the backend technology and the frontend technology. This means that a headless CMS provides a database and the backend techology to store and to deliver content. It also provides an API (Application Programming Interface) to communicate with an external system that displays and creates the content. This way, you can deliver the content as a service (CaaS), which is another buzzword in the world of headless CMS. CaaS means that the storage and delivery of content is provided by a completely seperated software. This software can be a self-hosted system or a cloud service of an external provider or startup. Contentful, Prismic, and CloudCMS are examples of those CaaS startups.

The most popular usecase for this technology is to store content and to deliver content to several systems, like:

You can find a german translation of this articel on cmsstash.de about Headless CMS.

Pros and Cons

One advantage of an API architecture is that your backend stores and delivers the content usually with a JSON API, which is a global data format. This means that you can use any language in the frontend, that you want: PHP, Java, Python, Ruby, whatever. Another advantage of this technology is the flexible and global content structure. With a headless CMS, you do not follow a certain content structure for a certain website or content management system. Instead, you (should) have a global content structure, that you can use for any kind of external system. For example, you don't have to think about a content migration if you change your CMS. You only have to think about how to communicate with the content API and how to integrate the content in the right way.

A flexible and global content structure is trickier than you might think. One of the more complicated tasks is to provide structured text, that is created with a WISYWIG editor. This content is usually stored as one HTML block in your database. A headless CMS has to find a way to provide structured content in a clean JSON format. Most of the modern products, like Prismic and Contentful, have a solution for this task, but you should check this first, before you start with your new headless project.

Finally, a decoupled or headless architecture might not be the best solution for all cases. For some, it can be extremely fast and easy to create a simple website based on a CaaS. But, in case you need a complex website and a fully featured content management system, the implementation of a decoupled architecture requires a lot more initial work. Either you have to connect your fully featured CMS to the API service, which can become quite a lot of work for a developer, or you create your own frontend technology. Then you have to re-code a lot of standard features, that a traditional CMS provides out of the box. So you should always think about your individual needs intensively before you decide on one solution or the other. If you do not distribute your content to several services and platforms (e.g. mobile services, several websites), a headless architecture might not make a lot of sense.

An architecture, not a product

As said earlier in this article, it is also possible to decouple a traditional CMS, like WordPress or Drupal, by using their JSON APIs or some special extensions. Narwhal is a CaaS based on Drupal, for example. Finally, there are some traditional content management systems, like FirstSpirit, eZ, evoq9, and Kentico, that follow an API or a so-called micro-service architecture by default. These vendors claim to be headless or decoupled or, at least, they provide some solutions or extensions for a Content as a Service (CaaS) architecture.

Sometimes you can read about some differences between "headless," "decoupled," and "API-based," but in most cases, these words are used synonymously. The basic difference is that a decoupled CMS has decoupled the backend and the frontend with an API service in between, but it still provides a fully featured CMS. A headless CMS is more of a Content as a Service architecture without a template engine, so it does not have the ability to create a website out of the box. Sometimes, these technical architectures are also explained as a micro-service architecture, which is a pretty common pattern in modern software development. You can read the explanation on Kentico, if you like, but you will also find some other explanations and differentiations out there.

Market Overview

In the following list, you will find a wide range of concepts, services, technical architectures, and products. The list does not claim to be complete or consistent, of course, but it shows the wide variety of solutions in this field.

Built

Built.io is a SaaS and cloud provider with three products: built.io backend, which is a backend as a service for mobile applications, built.io flow, which is a platform for API integration, and finally built.io contentstack, which is an API-first headless content management system. The headless CMS is a cloud service, which provides an API and an SDK for developers. Built has not published any price scales, but it is for startups, midsize organizations, and large enterprise businesses.

ButterCMS

ButterCMS is a pretty new API-first CMS that specializes in blogs, but can also be used for other dynamic pages. ButterCMS is a hosted service and provides an admin panel for content editors. Prices range from $24 to $166 a month. There is not much information about the company out there, so I suppose that ButterCMS is still a small project.

CloudCMS

CoudCMS is one of the pioneers in the field of headless CMS and Content as a Service (Caas). It runs on Amazon EC2, uses MongoDB, and offers a pretty impressive range of features. The price is pretty impressive, too, starting at $200 and going as high as $1200. CloudCMS is a grown enterprise service and probably not the right choice for your private blog or a small startup.

Cockpit

Cockpit is one of the few self-hosted and open source software in the field of API-driven CMS. It is a product of the digital agency agentejo. It runs with PHP, uses SQLite or MongoDB (with PDO), and requires node.js on your server. It provides a user interface and an API to deliver the content. You can combine Cockpit with your favourite micro-framework (or router) like Silex, Slim, or Lime to create a website. Add a template engine like Twig and you have your own lightweight CMS.

Contentful

Contentful is a CaaS (Content as a Service), similar to Prismic or CloudCMS. Contentful provides SDKs for all major programming languages and APIs for content delivery, content management (creation), images, and previews. Contentful is already a mature startup with some dozens of employees. Rates start from zero for private websites to 949 Euros a month, with an open end for enterprise customers. According to their website, the service is already used by several well-known brands, like Nike and Red Bull.

Directus

Directus is an API-driven content management framework for custom databases. It is a self-hosted and open source software created by the digital agency Ranger. It also provides a feature-rich and intuitive interface for users to manage their content. The interface is, of course, decoupled and built on top of the API. Directus is written with Backbone.js. Directus requires a Nginx or Apache Server, PHP 5.5+, MySQL 5.2+, pdo_mysql, mysqli, mod_rewrite, curl, fileinfo, gd, and mcrypt.

Evoq9

The enterprise content management system Evoq 9 follows a headless and decoupled architecture with an API to access content from the so-called Liquid Content Cloud, which is powered by Microsoft Azure. The Liquid Content Cloud is the headless part and Evoy9 is the head of the CMS. So Evoq9 is a full-blown, decoupled, enterprise content management system like eZ or FirstSpirit, but it uses am external cloud architecture as a content repository, which seems to be pretty unique in the enterprise CMS market.

Evoq9 is a commercial product of the company DNN Evoq. Before 2013, the company name was DotNetNuke, which is also the name of the well-known open framework for web applications written in ASP.NET.

eZ

eZ is a traditional enterprise content management system with quite a long history. eZ Platform, the core of eZ Enterprise, consists mainly of a repository and a user interface to manage the repository. The company claims that eZ can be used as a headless CMS out of the box, because the the platform is decoupled, yet integrated. eZ is a self-hosted, open source enterprise software for large companies and complex environments.

FirstSpirit

FirstSpirit is a traditional enterprise content management system with a pretty long history. The company behind FirstSpirit, called e-spirit, was founded in 1999. Since 2004, FirstSpirit focuses on the concept of a content integration platform that allows the user to integrate content from different sources into a kind of digital content hub. I am not qualified to judge if FirstSpirit is a true decoupled or headless CMS, but the company itself markets FirstSpirit as a decoupled CMS and published a CaaS extension in 2016.

GatherContent

Most headless CMS services focus on developers and use a technical language. GatherContent is quite different. They call themselves a a content production platform with a focus on content editors and, thus, do not push their product as a headless or decoupled CMS. Instead, you can read sentences like the following on their website: "Providing a simple and structured authoring enviroment for your authors will bring clarity to the editorial process. You'll get the content you need sooner, and in the correct format." This is a really healthy approach because sometimes people forget that content management systems were originally invented to solve problems of ... content managers! GatherContent provides a lot of connectors to other CMS like WordPress, Drupal, Expression Engine, Sitecore, AEM, and more. Prices range from $66 to $216 a month.

GraphCMS

The headless CMS Graph is a young headless content management system based on GraphQL, a query language especially developed for APIs. GraphCMS is in open beta now, so you can give it a try.

Kentico Cloud

Kentico is a web content management (WCM) provider. In 2016, the company released the Kentico Cloud, a headless and decoupled Cloud CMS. Kentico Cloud provides "Kentico Draft" for authoring, "Kentico Deliver" for content delivery via an API, and "Kentico Engage" for analytics, measurement, and personalization. Kentico started as a traditional CMS company in 2004 and is based on ASP.NET technology.

Narwhal

Narwhal is a headless CMS and CaaS service built with Drupal 8. Narwahl was created by Codelab42, a team of Drupal consultants and developers located in Belgium.

Osmek

Osmek started as a traditional hosted CMS service and website builder in 2010, but made a shift to a cloud based content API in 2012. Osmek was created by the web agency Kemso. Although it is probably one of the pioneers in this field (Osmek claims to be the original Content API), there is not much informations about the customer base or the history of this service. Prices range from $9 to $149 per month, so it has a different target group than other US services, like cloudCMS or Built.io.

Prismic

Prismic is a CMS backend for your website and, thus, an API based, headless, or decoupled CMS. Prismic comes with a "writing-room," solving the needs of content writers and a "content query API," solving the needs of developers. Like most CaaS providers, it has SDKs for several programming languages. Prismic has a pretty flexible price range, starting from zero up to $575 a month. With this price range, they focus on simple private websites as well as on enterprise customers.