Of all the components of the JAMstack model of web development, the content management part is the most immature currently. But in the technology world, where there is immaturity there is opportunity. In the case of JAMstack, the opportunity is to re-imagine the traditional content management system (CMS) with something called a “headless CMS.”

To find out what a headless CMS does and why it’s a big trend, I spoke to Victor Coisne from one of the leading headless CMS vendors, Strapi. It turns out Coisne knows a fair bit about the cloud native ecosystem too, having been Docker’s Head of Community from 2013-2018. So I also quizzed him on the parallels between the emergent container world of 2013 and the (perhaps) emergent headless CMS world of 2020.

But first, let’s address the term “headless CMS,” which rivals “serverless” as one of the worst category names in the cloud era. Basically, the “head” in a CMS context means the frontend. According to Coisne, a headless CMS separates the presentation layer from the data and logic layers. Whereas with a traditional CMS, all those layers are bundled together in a monolithic architecture.

Here’s how one of Strapi’s competitors, ButterCMS, explained it: “In a traditional CMS, everything is packaged together and the technical architecture tightly links the frontend (design and layout) to the backend (code and content database).”

This is the diagram Strapi has used in presentations to visualize its headless architecture:

Source: Strapi

Strapi’s technology is open source and is based on Node.js, a JavaScript runtime environment. Its user interface is an admin panel built using React, the popular JavaScript framework. The idea is that developers set up various “content types” in the admin panel, and further define those types with “components” (according to developer Bartłomiej Dąbrowski, a component is a “reusable data structure [that] can be used in different content types”).

_Source: _Strapi’s YouTube channel

The content can be stored in a database of your choosing and is then connected to frontend tools (like React or Gatsby) via API.

Content Editing in Strapi Compared to WordPress

The main appeal of a headless CMS system is that you can enter your content once, and it can then be distributed to any presentation layer via APIs. Coisne calls this an “omnichannel” approach to content management, meaning any channel or device can potentially consume the content — not just web and mobile, but Internet of Things (IoT) devices, digital signage and more.

WordPress, on the other hand, is optimized just for web and mobile. The key advantage of WordPress, though, is that content editors can see what the content will look like to the end user — via its WYSIWYG (what you see is what you get) user interface.

The big problem Strapi faces is that its frontend is not necessarily optimal for content creators. The admin panel (see image below) is fairly basic, compared to WordPress.

#api management #development #profile #docker #node.js #javascript

Strapi’s Headless CMS and Lessons Learned from Docker
1.75 GEEK