In a recent project, I was asked to explore and evaluate a number of solution candidates for Content Management Systems (CMS). For those of you who are new to the term, a CMS (in the world of web) is responsible for storing, serving and managing certain content for a website. In this article, I'll give a brief overview of three of the solutions I came across: Contentful, ButterCMS and GraphCMS.
In most cases, the "content" in a CMS is in the form of text/pages/articles, images etc. You may have heard of platforms like Wordpress, EPiServer or Drupal - these are CMS:es that have been around for a long time. They're tried and tested, but also fairly traditional in the way they work. They're designed to take care of "everything" - editorial tasks, the presentation layer and (sometimes) underlying business logic. They're also separate software installations requiring a server environment such as Apache or IIS.
A headless CMS only deals with serving the content as a resource through an API. It's "content as a service". With this approach, developers have more freedom in implementing the UI since you're not bound to a certain platform. Content becomes decoupled from the presentation layer. Also, since it's offered as a service, you never have to worry about installing and mainting an entire CMS platform and hosting environment.
So, here's a list of three content management systems that I've come across, each of them headless but with different strengths and weaknesses.
Contentful is a CMS that features RESTful API:s, a content delivery network (CDN), caching and much more. Content is organized in "spaces" and represented in the form of self-defined "content models" (i.e. a product model, category or brand page).
A list of content in the Contentful admin panel.
Contentful gives the impression of being an extremely feature-rich, well-documented and stable platform. There is a large number of tutorials and guides available, aimed for both developers and editors. The service is offered at three price tiers, from $39 (developer edition) to $949/mo.
With ButterCMS, content is organized in "workspaces", similar to projects. Content is represented as "Pages", inheriting properties from "Page types". Featuring a slim and clean admin/editor panel, ButterCMS seems aimed at small/medium businesses and individuals requiring a basic yet stable CMS.
The ButterCMS page type editor.
Content is easily accessed through client libraries, querying the ButterCMS CDN. Webhooks can be configured to POST change notifications to external applications and services. The documentation and code samples is available for Curl, Ruby, Python, PHP, Go and C#.
ButterCMS is available at two price tiers: $86 or $166/mo.
GraphCMS is one of the few CMS:es I've seen so far that uses GraphQL instead of REST API:s. Designed and used at Facebook, GraphQL exposes one endpoint that returns exactly the data a client requests. This means really slim and efficient data fetches - no more bloated responses full of irrelevant meta data (some say GraphQL is the successor of REST, but that's for another discussion...).
In GraphCMS, content is created based on "models" and organized into "projects" - similar to Contentful and ButterCMS. The editor has a lot of features: Publish date, image assets and more is easily available as well as webhooks and project configuration.
Since GraphCMS is based on GraphQL, it also features an "API Explorer" that will help you form your API queries and inspect the response. This is really handy for testing and verification, especially if you're new to the GraphQL query syntax.
The GraphCMS API explorer.
Prices range from $39 - $349/mo.
Every organization have different requirements and priorities, so it's impossible to make any single recommendation. Instead, see these candidates as a good starting point for exploring different approaches to headless content management. Try them out, let developers and editors have their say, and then decide what works best for you.
Are you using a headless CMS today? Are you satisfied with it? How are you using it? Drop me a line and let's discuss!
Subscribe to Oskar Lind
Get the latest posts delivered right to your inbox