Share

engineering

10min read

Beginners' Guide to Content Management System Solutions

Beginners' Guide to Content Management System Solutions

Guide to CMS solutions

Are you before the launch of a blog? Are you researching technologies for creating your website, or you need some software to manage web content? Perhaps you are considering a change in architecture? You heard about Wordpress or Contentful, but you don’t know the difference between them? I’m going to show you a typical content management system architecture, describe their pros and cons, and provide you with a list of software with their benefits.

First, let’s recap a CMS definition.

Content Management System

A content management system (CMS) is an application that is used to manage web content, allowing multiple contributors to create, edit, and publish. Content in a CMS is typically stored in a database and displayed in a presentation layer based on a set of templates.

The following are the basic features of a CMS:

  • Content creation (allows users to create, edit, and format content)
  • Content storage (stores content in one place)
  • Publishing (organizes and pushes content live)
  • Workflow management (assigns privileges and responsibilities based on roles such as authors, editors, and admins)

Coupled, decoupled, and headless

To understand which type of CMS would suit you best, you must know the three main types of web content management systems:

  • Coupled CMS is referred to as a traditional CMS.
  • Decoupled CMS is also referred to as a hybrid CMS.
  • Headless CMS is a subset of decoupled CMS.

I will walk you through each of them so you can make an informed decision.

text

Coupled CMS

In the traditional CMS architecture, the Back End is “coupled” with the Front End. Content is created, managed, and stored on the site’s Back End. It is also where website design and customization applications are stored. This content management Back End and database are bound within the same system that delivers and presents content to devices and end-users.

text

Decoupled CMS

With a Decoupled CMS—also known as a hybrid CMS, your content is managed separately and is Front End agnostic. Yet, it has a Front End delivery tools in the box, like templates, if you want to use them.

The difference is that the Back End and Front End are not “coupled” to each other through a database like with a traditional CMS. Instead, they communicate with each other through calls to an API.

text

Headless CMS

A headless CMS is a Back End only content management system built from the ground up as a content repository that makes content accessible through an API.

The term “headless” comes from the concept of chopping the “head” (the Front End components like the Front End framework and templating system) off the “body” (the Back End like the content repository).

text

Pros and cons of coupled and decoupled / headless CMS

Coupled CMS

Pros

  • Themes and templates: countless number of visual themes. You can choose a template for a simple website without too much customization.
  • Front End editing capability: the presentation layer is editable and customizable from the admin panel.
  • Real-time change: preview is accessible from the admin panel. You can see the presentation result before publishing the content.
  • Technical knowledge is not needed: creation and each update (maintenance) do not require specialist knowledge.

Cons

  • Not an API-centric approach from the ground-up.
  • Constraining: some of them even use it intentionally to lock their clients in, so that they cannot easily move to a different agency.
  • Platform agnostic limited: you are limited by the CMS platform, programming language, upgrade cycles, scalability, and security.
  • Monopolize the presentation layer: difficult to add new channels like mobile apps and microsites without duplicating your content.

Decoupled / headless CMS

As noted earlier, a decoupled CMS is essentially a headless CMS with full-CMS capabilities. The features listed below are, therefore, common to both types.

Pros

  • Omnichannel readiness: ability to easily integrate new channels. Content can be repurposed across multiple channels, as we are not blocked by the functionalities available in the CMS.
  • Migration ease: content migration and sharing with other systems is generally much more innate to the architecture. Content can be moved to another tool with ease.
  • Flexibility: no tight coupling between business applications and CMS, resulting in flexibility that allows you to choose whatever technology and framework you are familiar with.
  • Simplified operations: it’s very easy to create and manage website/web-app content. Users can edit content independently of the web application, allowing you to focus on content and workflow, and manage exactly how that content is used.

Cons

  • More development effort: more code to develop, thus more risks.
  • No preview: content authors are not able to preview how the created content will look in the applications from the inside of the CMS.
  • Limited functionality: presentation functionality is limited.
  • Learning curve: it could take some time to really customize the CMS and develop the presentation layer, especially when it comes to an understanding of the separation of content and view.
  • Delayed availability of changes: immediate content updates are not always available, or may be dependent on the developer.

Decoupled vs. headless CMS

What are the differences?

That separation of delivery and publishing is something that headless and decoupled CMSs share. The difference is that a decoupled CMS is concerned with presenting content, which happens in the delivery environment—for example, it has a concept of templating, while a headless system doesn’t. A headless CMS concerns the delivery data and doesn’t care about the presentation layer. It’s free from presentation logic, and it shares a clean content model via API.

“A Decoupled CMS is proactive — it prepares content for presentation and pushes it into a delivery environment. A headless CMS is reactive — it manages content, then just sits and waits for some process to ask for it.”

text

Main features of both CMSes

Decoupled CMS

Many consider decoupled to be the best of both worlds: you have templates to work with like in a traditional CMS, but you also have the flexibility of a headless implementation.

  • Themes and templates: decoupled CMS provide some simplified templates ready to use immediately.
  • Fast result: with a little more effort than in a coupled CMS, you can deliver a website.

Headless CMS

Of all three CMS architectures, headless CMS offers the most control regarding how and where your content appears.

  • “Pure” content: the content created has data without additional meta-information or a complicated data structure.
  • Flexible data: a wider range of possibilities to create and modeling data, almost unlimited.

Summary

You’ve learned the three main types of CMS, along with their pros and cons. I also explained how the headless CMS differs from the decoupled CMS. You need to think about what is more important to you and what resources you can afford.

If you don’t know much about technology, use tools that you can quickly implement with ready-made page templates—the coupled CMS. If you care about the flexibility of solutions, the possibility of choosing the technology in the presentation layer, and you have the resources that will allow you to configure the CMS personality with presentation layers, I would go in the direction of the decoupled CMS.

List of software

I leave you with a list of sample CMSes. Note that they are available. CMS has started to provide a separate API that makes it become decoupled. Often, the API does not support external plugins, so be careful when searching for optimal tools. A good CMS was suggested by their popularity on github.com, slant.co, headlesscms.org, and from articles which I prepared this post. I wanted to choose tools from various technologies. I gave open-source and paid tools.

KeystoneJS

  • Coupled
  • 14819 stars
  • Javascript, Express.js and MongoDB
  • Open-source and free
  • Email Sending
  • Admin UI support mobile device
  • Session Management

Grav

  • Coupled, Flat-File
  • 11353 stars
  • PHP, Flat-File
  • Open-source and free
  • Custom fields for content
  • Easy creation of templates and content
  • Does not use any database, a complete flat Elise CMS

Joomla

  • Coupled
  • 2924 stars
  • PHP, MySQL, Microsoft SQL Server, Microsoft SQL Azure, Postgresql, Oracle DB, SQL Lite
  • Open-source and free
  • Includes support for multilingual sites out of the box.
  • Offers excellent support for custom post types.
  • Admin UI support mobile device

WordPress / WordPress REST API

  • Coupled / Decoupled
  • 7884 stars
  • PHP, MySQL, MariaDB
  • Open-source and free
  • Admin UI support mobile device
  • Thousands of plugins and themes
  • Low barrier to entry
  • Delivery REST API and allow to used how decoupled CMS

Drupal / Drupal REST API

  • Coupled / Decoupled
  • 3327 stars
  • PHP, MySQL, MariaDB or Percona Server, PostgreSQL, SQLite, Microsoft SQL Server and MongoDB
  • Open-source and free
  • Provides advanced user management and permission settings.
  • Includes support for multilingual sites out of the box.
  • Supports multi-domain management
  • Delivery REST API and allow to used how decoupled CMS

Ghost

  • Decoupled
  • 31006 stars
  • JS, MySQL, sqlite3
  • Open-source and free
  • Real-time preview for presentation layer from templates
  • Self-host & paid Ghost(Pro)-host options
  • Limited number of models & fixed fields in model

dotcms

  • Decoupled
  • 515 stars
  • Java, H2 Database, PostgreSQL, MySQL, Microsoft SQL Server, Oracle
  • Open-source and free

Contentful

  • Headless, API Driven
  • not free
  • Advanced caching techniques and integration with CDNs.
  • GraphQL API under development
  • Includes support for multilingual sites out of the box.
  • Provides advanced user management and permission settings.
  • Webhooks for connect to outside services and tools
  • Gatsby preview
  • Admin UI support mobile device
  • Rich editor interface

Strapi

  • Headless, API Driven
  • 17683 stars
  • JS, PostgreSQL, MongoDB, SQLite, MySQL and MariaDB.
  • Open-source and free
  • GraphQL API under development
  • Customizable Layout
  • Easily customize the admin panel as well as the API
  • Rich Markdown Edytor (WYSIWYG HTML editor coming soon)
  • Simple authentication and permissions
  • Webhook on model events
  • Blocks - modular content (coming soon)
  • Media Library with edit, crop & resize capabilities (coming soon)
  • Plugins system

NetlifyCMS

  • Headless, Git-based
  • 9672 stars
  • JS
  • Open-source and free
  • Easy Creating Custom Widgets option
  • Experimental support for GitHub’s GraphQL API is now available for the GitHub backend. Without mutation

Directus

  • Headless, API Driven
  • 5043 stars
  • PHP, MySQL
  • Open-source and free
  • GraphQL API under development. Currently supports “Queries” only. “Mutations” and “Subscription” support will be added soon.
  • Admin UI support mobile device
  • Auto-Thumbnailer
  • Webhooks
  • Simple authentication and permissions

Cockpit

  • Headless, API Driven
  • 4105 stars
  • PHP, SQLite or MongoDB
  • Open-source and free
  • Webhooks
  • Authentication by API Token
  • Small dev team supporting it

I hope the article will help you make an informed decision regarding your Content Management System needs. If you have a Front End or Back End project in mind, don’t hesitate to contact us and have a chat!

Share

Daniel

Software Engineer

Did you enjoy the read?

If you have any questions, don’t hesitate to ask!

Did you enjoy the read?

If you have any questions, don’t hesitate to ask!