Adam Hunter

Made with in NYC

Content Management Systems

The start of the CMS rabbit hole

5.25.21


Like probably most software developers early in their careers, I have been doing some freelance work. When I first started I had to dive into the world of CMS to figure out how to deliver a project that I coded.

WTF is CMS – CMS is what most people call the backend of their site, it’s the admin dashboard where you can upload things and make posts and traditionally even features the actual frontend that combines the data from the database with HTML.


 There are two types of CMS to choose from, on-premises and cloud based, and WordPress is probably the most well known for both kinds. I won’t get into WordPress here, let’s go beyond it. To go beyond traditional WordPress/CMS, let’s get into headless CMS.

WTF is headless CMS – headless CMS is a backend that makes content accessible via a RESTful API. What does that mean and why is it cool? If a full-stack website were anthropomorphized into a robot or android or something, headless CMS allows you to chop off the ugly old head that was designed in the late 1990’s or something and build a fancy new one with whatever modern tools you like. In this analogy, the spinal cord would be the RESTful API that allows the new fancy head to still work with the old body. 


One of my preferred modern tools to make new heads for my robots is React. With a headless CMS, you can make a fancy React app and connect it back to your CMS with an API. Let’s start with Frontity. Frontity touts themselves as THE React framework for WordPress. For the record, you do not have to use a framework however that would require manually coding out many lists of tasks, routing, server rendering, and data retrieval from WordPress. You can do that if you have the time and interest in it but using tech like this often reminds me about reading that Tesla uses Stripe as their payment processing platform. Telsa, you know Elon Musk, that guy, who invented PayPal, he likes Stripe and uses it instead of his own software. Anyway, Frontity seems like a great solution for using React with WordPress CMS. 


If you want to move away from WordPress and still use React, Strapi looks like one of the more popular and best options. Full disclosure, I did come across a Strapi vs Sanity debate. To not splinter too far into different rabbit holes, let’s focus on Strapi. Strapi call themselves “the next-gen headless CMS, open-source, javascript, enabling content- rich experiences to be created, managed and exposed to any digital device.” The sub-reddit calls it “The most advanced open-source Content Management Framework to build a powerful API with no effort.” I copied and pasted that because I found it to be true. Within just a few minutes using their documentation I had an API up and running, see pic directly below. 



Naturally, the rabbit hole does not stop with WordPress, Frontity, Strapi or even React at all, in fact WordPress is all PHP anyway. I consider myself a Python dev and specifically find Django to be incredibly powerful. Django comes with an admin interface out of the box but is not considered to be CMS. There seem to a few good Python/Django CMS options, the top two being Wagtail and Django-CMS (runner up: Mezzanine). Wagtail appears to be a little more popular, probably largely due to the fact that Django-CMS is complex and probably overkill for a lot of projects. They can both be integrated with existing Django apps and are both loaded with features. Using Django-CMS or Wagtail means developing fully in Python instead of using PHP which will also probably mean better security, more customizable, higher speed over time, better scalability and personally means I get to develop in a preferred language.

Adamadam hi

Adam