Types of CMS (Content Management Systems)
If you go to one of the software review sites you’ll see that their directories of Content Management Systems are quite bloated.
G2 crowd has a lengthy list of subcategories of their CMS category:
Capterra lists 407 products in their listing of Content Management software
clearly - those categories are not well suited and list products that often serve completely different purposes. You’ll find video production software, OCR software, form builders, etc. - all mixed up with tools like Wordpress, Contentful, Drupal or Sitecore.
What the hell? I just want to create a website. Are any of these going to help me?
All these tools indeed have something to do with content, but they’re not what a user typically refers to when looking for CMS.
Here’s how Wikipedia defines a CMS:
A content management system (CMS) is a software application that can be used to manage the creation and modification of digital content. CMSs are typically used for enterprise content management (ECM) and web content management (WCM). ECM typically supports multiple users in a collaborative environment by integrating document management, digital asset management, and record retention. Alternatively, WCM is the collaborative authoring for websites and may include text and embed graphics, photos, video, audio, maps and program code that display content and interact with the user. ECM typically includes a WCM function.
— Source: Wikipedia
which reflects the common understanding of the term, as a system used to deliver content over the web.
Let’s make it clear - a Content Management System is usually a short for Web Content Management System or a WCMS.
Web Content Management Systems
Web CMS systems are that specific group of software, where you find the tools that are used in the production and delivery of websites. Usually, having a website requires making updates to its contents and it’s a job that is best done by someone who has the skills to create that content. To do it effectively, without engaging web developers every time a change needs to be made - we choose to build websites integrated with a Web Content Management System. The CMS becomes a tool, that allows non-developers to create and publish content, manage the site’s structure, etc. I’ll break this category further and look into different kinds of CMS software.
Website builders
These products allow you to visually built websites. Expect a drag & drop interface that allows you to create a visually pleasing website (or something ugly, if you’re the same kind of artist as me).
A website builder often lets you publish your website under a domain name in a couple of clicks too. Good examples - Wix, Squarespace.
Landing page builders
Similar to the previous group. Often focused on building single-page websites. Dedicated for marketing campaigns or very simple websites. Examples Instapage
All-in-one CMS
This class contains the traditional CMSs like Wordpress, Drupal, etc. Systems that often have some of the features of website builders (e.g. the Gutenberg editor in Wordpress), but also allow the users to organize their content in more effective manners.
An All-in-one CMS is responsible for delivering the HTML code of your website upon every request from a user’s browser. There are 2 parts of the system - the user-facing part (delivering the website) and the admin interface, which is where you enter your content. The admin part can be pretty complex. It allows you to install additional extensions, themes, etc. which provide extra features to your CMS system. The main issues of these platforms are:
- complexity
- less-than-perfect security
- performance issues
- incompatibilities within the plugin ecosystem.
You also have to choose the hosting provider and their plan and worry about platform updates if you want to keep your installation secure. Some examples:
- Wordpress
- Drupal (also comes with headless)
- Joomla.
Headless CMS
Headless Content Management Systems have one focus - content. The role of a headless CMS is not to present the content to an end-user. Its only job is to be a content repository, that allows other systems to pull content and use it in whatever way they need. These systems are, by design, ignorant of how your content is delivered to the final user. Be it a webpage, a mobile application or an e-mail message. A headless system can deliver content to feed that experience, but you need another system (e.g. a static website generator like GatsbyJS), and a developer, to present it to the user.
Source: Wikipedia
Source: Wikipedia
Most Headless Content Management Systems provide a simple administrative interface. It allows non-developers to enter content into the system but that’s not part of the headless anymore.
A headless CMS is typically used by developers, who are integrating it in more complex systems as a content repository.
Since headless systems are so focused on content and developer-centric, their admin interface is often focused on how the content can be modeled, i.e. what attributes should a product have or what are the workflow stages for a particular kind of content.
Good examples of headless CMS:
Summary
The term CMS is primarily used to refer to software used for the delivery of content across the Web.
Headless CMS focus on delivering content stripped out of any information about how that content is presented to the user. Headless systems are used by developers and allow them to feed other systems with content that is stored inside the Headless system. A great choice for repurposing content for different media and going omnichannel. Requires more components and expert knowledge to use them for building websites.
The main focus of website builders is the presentation layer. Often lock-in the content into the presentation logic tightly, without any chance of utilizing the content in any other system.
All-in-one Content Management Systems are the traditional way of building CMS-based websites. Contain an admin interface for non-tech users to enter content and a templating engine that allows developers to build websites. These require extra effort on hosting, applying security updates and general maintenance.