FrontAid CMS - Agile Content Management with JSON & Git.

» FrontAid CMS / Blog

What is a Content Management System (CMS)?

Every website you visit and every application you use has content. That might be a couple of headings, texts, buttons, images, etc. For example, the text that you are reading right now is content. And somebody is managing—i.e. creating, updating, removing—that content. Most often the people that are working on the content are not the software engineers who built the actual application. And as some content editors are not tech-savvy, they need a guided way to manage their copy texts easily. A content management system (or shorter; CMS) does exactly that.

A CMS is a software application for managing digital content. It allows even non-tech people to work on and update content of websites and applications. A CMS usually does not require any knowledge about the technical setup of a project but its focus is solely on the actual content. Depending on your requirements, one of several different types of content management systems may be suitable for you.

Coupled, monolithic CMS

Historically, most content management systems are a large monolithic systems. They handle all the different aspects from the actual content management to the content presentation. The latter handles the actual visualization of the content of an application including site structure and design. Systems that provide both the content management and content delivery are also called Coupled CMS. WordPress—the world’s most used CMS—is also a coupled and monolithic content management system. Such systems often impose strong restrictions and limitations to its users. For example, they only run on certain servers or require the use of certain programming languages.

Headless CMS

The limitations of coupled CMS have lead to a multitude of leaner content management systems. One approach that is particularly popular is the so-called Headless CMS. Such systems are decoupled and only focus on the actual content management. That means they don’t offer ways to add a design or a visualization of content, but they are mere content repositories. To actually consume the content, you need to use their data interface to obtain it first. Then you are free to do whatever you want with that content. For example, you can integrate it in your website or mobile app. Headless CMS are particularly useful when you are dealing with several distinct platforms (i.e. a website and a mobile app) that use the same content.

Git-based CMS

Git is one of the most popular tools to manage source code. It provides a rich set of features that are essential for software development like version control, branching (i.e. have several distinct versions of code in parallel), automatization, and much more. Some CMS directly integrate into that Git-workflow and they are thus called Git-based CMS. They store project content directly into Git and leverage the rich ecosystem that is already available. For software engineers that has the added benefit that the content is always available side by side the actual code. So there is no need to obtain the content from somewhere, it is just “magically” where you need it.

JSON-based CMS

Headless CMS most often store the produced content in their own (proprietary) data store. You can only access the content through interfaces that they defined and that might be a limitation for some applications. If you want the maximum level of flexibility regarding your content, then you have to use a standard data format for it. A standard format that is particularly versatile and well-supported is JSON. Every programming language can read and write it and there are thousands and thousands of tools that can import/export it. JSON-based CMS store content in the JSON format. Using such an open standard for content is extremely future-proof and allows very flexible solutions.

FrontAid CMS

FrontAid is a headless CMS, yet different from most other players in that field. It stores all its content in a universal JSON file that can be consumed by all programming languages. So it is JSON-based and therefore very flexible and can manage the content of pretty much every kind of application. It also leverages the power of Git as a Git-based CMS because its content is directly stored in a Git repository.