What Makes a Great CMS?

Over Coffee
4 min readAug 21, 2021

--

SaltManage image

For this project I will be researching what features and functionalities make a “Great” Content Management System (CMS). I began this research because I’m building a startup that offers a custom CMS as a service and because of that, I needed to really understand what a CMS is and what makes one great.

What is a CMS?

A Content Management System is an application that helps users create and manage content for websites. This management of content usually takes place in a dashboard-like interface that users interact with. This helps to separate users from complex code behind the scenes and keeps them focused on perfecting the look and feel of their websites.

Wordpress Image

CMS’s are commonly used in WordPress blogs, SquareSpace sites, Medium articles, and so much more… They provide major benefits such as collaboration, ease-of-use, and lower barrier to entry with respect to time. Some alternatives to using a CMS are coding in collaboration, hiring a content manager, or doing the coding and maintenance operations by yourself. All of these however, are less than desirable.

CMS was introduced as a way to lighten the work-load on developers and provide web-admins who didn’t have many advanced technical skills with a tool for creating and modifying content on the web.

How Does It Work?

From my research, I’ve found that a CMS typically stores content in a database on the backend and displays the content it stores in a dashboard. Once the data is shown on the dashboard, it can be altered/modified by admins. This is possible because most of the content, front-end content that is, on the site sits on top of a template with a predefined structure. This was confusing for me to understand at first, so I made this diagram to help illustrate this a little more…

Most of the CMS functions are CRUD (create, read, update, delete) operations that alter/modify the database and content publication to the site. We can utilize these functions to post and edit content on our site by getting data from and posting data to our database.

For example, let’s say we wanted to create a simple CMS for our blog about puppies we own.

Unsplash Image

We may want to talk about the name, age, size, favorite food and activities our puppies enjoy doing. From a development perspective, what we need to do in order to accomplish this goal is simply create a front-end form for us to insert our data into and then, when we’ve filled out the form, we post that data to our database. The database can hold pretty much anything we throw at it, but in this case, it will only need to hold the name, age, size, favorite food and activity in a respective table (some content may even be held in HTML).

The way I would handle posting the data to the database would be via something like a Lambda Function/API that generates new rows within tables upon request. Once the table rows are created, I would have an API that polls the database for changes and executes the update on the front-end. The front-end is then updated with our content and the end-user/public is able to see the results.

Random Thought: Admittedly, I was thinking “Hey, what about Javascript code?” and then I was quickly reminded of XSS and CSRF, so that would definitely not be something I would recommend doing.

Features Every CMS Should Have

I did some research on some basic features that should be included in every high-quality CMS and this is what I came up with.

  • Intuitive Dashboard
  • Templates
  • Responsive Theme
  • Plugins
  • Administration
  • SEO Tools
  • Analytics

These features are pretty easy to create and I’ve found that after creating these and integrating it all in the dashboard, what’s left to finish is just adding extra functionality in the form of plugins.

What Are Some Free CMS’s Out There?

In my case, I was really looking for a CMS that was React-Native focused, open-source, and had a sleek design while providing all the essential features and functionalities of a high-quality CMS. However, I quickly noticed that finding something like this was going to be a little harder than I initially thought. Most free open-sourced CMS’s are not sleek in design and do not offer a lot of features and functionalities and the few that do require developers to enter into a contract and pay for the service and support.

Nonetheless, I was able to find some applications that offered a pretty good amount of free features and offered a lot of functionality out-of-the-box. These applications include:

If you enjoyed this post, please give it a clap and keep a lookout for future posts!

--

--

Over Coffee
Over Coffee

Written by Over Coffee

Over Coffee is a platform where we share opinions on a wide arrange of topics revolving around tech and finance.

No responses yet