Headless & Decoupled CMS

Posted on

Start

It’s been over a year. I’ve been searching for the right decoupled Content Management System (CMS); avoiding the obvious and exploring the limited open-source systems out in the wild world of the internet. During this time, I’ve gotten my feet wet in the DevOps pool and venturing in exploring Node.js and app deployment to Amazon Web Services.

What is the obvious? If I were to say “More than 25% of websites on the internet run on this system (including this one).” You would know, right? WordPress is the answer. For a creative tech, some times we want to go to the edge, only to realize we should just sit down and work with what we know.

I know WordPress; been working it for like 15+ years. But like all the other stuff in this space, I’m continuously learning and felt compelled to go “new school”. From where I stand PHP is crazy old-school while JavaScript ES6+ and Node.js are the answers to everything. This is not true. If it ain’t broke don’t fix it. Well in the world of JavaScript there are a ton of things broken. But I digress.

Requirements

I mentioned that the CMS work I’ve been tasked with has to be open-sourced. You know there’s a budget. There are a number of proprietary paid services that could work, but $ is the critical deciding factor.

The project I was working on needed to have Application Programming Interface (API) endpoints. Another developer was working on a client facing application that needs to make a call to a CMS. The CMS, my project, queries a database, the sends information back to the application – usually in the form of JSON object.

Exploration

A quick Google search for “Headless CMS” will reveal about 12 to 15 main players with only a handful offering open-source solutions. I think I started with Grav – which I really liked. The flat-file system is really attractive to me. In the end it was not the right match for this project so I had to move on. I can see it being useful for a local installation without an internet connection.

The next one I got really excited about was Strapi. It’s a Node.js app and thus requires a web server that runs Node. For the well trained it’s pretty awesome. There’s a very active community behind it, but in the end it required too much for me to maintain. There really is some place called “Node Module Hell”! Perhaps once its out of Beta, then I’ll have another go round.

The latest one that does get all my attention is Cockpit CMS. It great system that checked most of the boxes on my list. It is very easy to deploy to a web server running PHP and it’s all self contained. The front-end is clean and easy to use. The only challenge is the lack of documentation and examples when you need to learn how to make a change or extend it. The is a forum and a small community chiming in but at it’s core, it’s all the product of one person.

Next

That obvious answer that I mentioned earlier will be another one to consider. I believe I will return back to it. There is no getting away from WordPress. It is such an easy platform (once you understand how it works) that right out the zip file it can be used as a Headless CMS. Add some custom post type plugins or write your own, then it becomes a very useful tool in creating API endpoints.

My next step is to do a fresh local install and play around with it. I’ll keep you post. Cheers.

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: