The term “Headless CMS” has come up in the past year and it has started to generate some buzz in the industry. “Headless CMS” is basically a concept and not a product or technology. But it has potential to help in our digital transformation efforts by making content delivery and marketing more flexible.
Traditionally, content management systems have been built not only to create and manage content, but also to manage the entire web experience, from displaying content, to managing navigation, to tag management and so on. As content management systems grow to take on more and more duties, they tend to become more rigid and limiting in how we build websites. Say you want to implement a new, cool technique, but find that you can’t do that with your current CMS. In the early days of responsive web design, many content management system could not provide this feature and left us with a lot of work arounds for our mobile sites.
This is where “Headless CMS” comes into the picture. What if you could have a content management system that did a good job at managing content, but left the presentation of the content and the website (the “head”) up to somebody else? In this case you could do anything you want when building the site, but still display content that is managed in a nice, clean way. Many years ago (before REST become popular) we developed a Content Services Framework at Perficient to help our customers with this concept.
Technologies like REST and Javascript frameworks have really pushed these ideas to the forefront. If our CMS can produce RESTful forms of content, then I can use AngularJS, Node, etc. to build a truly custom and interactive site and pull in content when I need it.
To go further, what if I can produce a public API or content service that can be consumed by others? I could potentially charge for that service (remember when news organizations did that? – they still do). Advertisers work that way – here is an ad that you can embed on a website, just call this Javascript library.
So its not a stretch to think of a content management system as a content service. That service can provide content to web sites, web applications, mobile applications, marketing tools, etc. All you need is for your CMS to have a well defined service contract (API) so all these other applications know how to access content.
Before we get all nirvana on this idea, there are some real hurdles that enterprise content management systems have already overcome:
- Secure content – its fairly easy to secure content, but making sure permissions and user credentials are shared across all applications can be tricky.
- Content in context – sometimes snippets of content don’t mean a whole lot unless presented in a larger context. For example, getting a description of a conference event doesn’t do a whole lot unless you also have the dates, times, speakers names, etc.
- Personalization and targeting – this is a two edged sword. If the CMS knows a lot about the user, it can personalize content for them. If your “head” is passing along a limited amount of information about the user, your content system may not be able to serve very personalized content back. On the other hand, if you pass a good amount of user information to the CMS, it may slow down the submission. Think of trying to pass along a list of pages the user visited on your site, plus their location, language, past buying habits, etc. so the CMS can present an offer on a page.
- Content formatting – content management systems have evolved to show previews of content, to edit content in the context of a page, etc. All this is done because content – the size of images or tables – can affect how a page is displayed. If you are grabbing content through a service, you may not get a good looking page unless you do a lot of upfront work to anticipate this problem.
In summary, headless CMS has a lot of potential benefits, but does pose some significant technical hurdles. At this stage of the technology, if you don’t have great skills in the “head” area, then sticking with a full-featured CMS may be your best option for now. Luckily for us, many (or all) of the enterprise CMS vendors are including content RESTful services in their products. These systems provide the option to use the CMS fully or to use it as a content service for your custom applications.