DEV Community

Cover image for You don’t always need a CMS
Chris Bongers
Chris Bongers

Posted on • Originally published at daily-dev-tips.com

You don’t always need a CMS

When it comes to websites, blogs, and whatnot, we often expect to find a CMS power these systems.

I get a lot of questions about what CMS powers my blog.
And I'll explain that while telling you why you don't always need a CMS.

What is a CMS

Let's first take a look at what a CMS is. It stands for "Content Management System", and as the name implies, it can be used to manage the content for a website.

Some famous CMSs are WordPress, Contentful, Wix, Shopify, etc.

There is a big rise of "headless" CMS, which means a CMS that serves as an API.
You have this system in place, and your website calls this API to retrieve the content.

CMSs are great for people who want to edit content and don't particularly know what to do with markdown, uploading files to a server, etc.

So when building websites for clients, it's often an excellent solution to pick a CMS that works for them.

What I run my blog on

I run my blog on a low-tech solution.
It has no CMS, but plain markdown files are parsed to plain HTML and uploaded to a server.

However, this is automated, so I don't have to do that physically, but there is still no content management system to alter the content.

So how does this work, you ask?

I open my project in my IDE of choice (Visual Studio Code, or WebStorm) and start changing my markdown files.
Either you edit the existing ones or create new ones for new blog posts.

Once I'm done, I push the changes to my git branch, which automatically triggers a GitHub action.

This GitHub action starts the build command on my Eleventy project (soon to be Astro), which converts all these markdown to HTML output.
Once this process is done, the HTML files get placed in a "static" branch.

Which trigger Cloudflare pages to pull the latest changes from this branch.
Cloudflare will do a git pull on this branch, and voila, the new changes are online!

This all happens in about a minute or so.

Why you don't always need a CMS

And for me, that's the main reason I don't need a CMS. It can be such an over-engineered solution.

I like to write content, markdown is the easiest way to write anyway, so I prefer it.

And once the content is written, I don't want to hassle with logging in to a system, copy-pasting the content and pressing publish.

(Although this is roughly the same amount of time)

Another downside to these systems is that they need upkeep. The CMS gets a new version, and you need to update it.
Something goes wrong, and you won't be able to push new content.
And worse of all, they can get hacked, meaning your website could be at risk.

Not saying it's impossible, but a static website is harder to hack. You would either need to hack my GitHub repo or my Cloudflare account, which are quite complex challenges.

Conclusion

I don't want to hate on CMS. They are a fantastic system that should be used.

But if you are a developer, consider if you need it?
Perhaps you can make your life easier, but going low-tech as well.

Thank you for reading, and let's connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter

Oldest comments (45)

Collapse
 
lexlohr profile image
Alex Lohr

The alternative you are using is called SSG, or static site generator. There are a few pre-built generators out there, but you can easily roll your own.

Collapse
 
dailydevtips1 profile image
Chris Bongers

Yep, it's not always a non-cms though.
You can have a SSG and still leverage a CMS

Collapse
 
lexlohr profile image
Alex Lohr

The CMS part is no longer static, so even if you feed a static page with it, the whole thing would not be an SSG in its entirety.

But yes, you can obviously do that.

Thread Thread
 
murilocp profile image
Murilo Picinato

CMS can be static if it is a headless CMS ;D

Collapse
 
epsi profile image
E.R. Nurwijayadi
Collapse
 
mcwolfmm profile image
mcwolfmm

CMSs are great for people who want to edit content and don't particularly know what to do with markdown, uploading files to a server, etc.

this is a precise definition and shows when a CMS is used. the other case in which the CMS is used is when the low cost of the final product is pursued (respectively, high profit for the one who prepares it).

in general, the use of CMS is good to avoid.

Collapse
 
gklijs profile image
Gerard Klijs • Edited

Indeed, I do something similar for my bass site. In my case it's Netlify running some rustlang to generate the html, and serve it. It uses vados underneath.

Collapse
 
dailydevtips1 profile image
Chris Bongers

Awesome, lovely to here Gerard 🙌

Collapse
 
renanfranca profile image
Renan Franca

I totally agree! I'm new to this no CMS world and as a developer I loved It 😍

My blog was build using Jekyll.

I explained how am I update it using my phone and I shared short videos doing that

Collapse
 
dailydevtips1 profile image
Chris Bongers

Wow awesome read Renan 💖

Collapse
 
renanfranca profile image
Renan Franca

Thank you 😊

Collapse
 
jamesbhatta profile image
James Bhatta

Great. How can we handle database related things like comments or likes with this approach?

Collapse
 
dailydevtips1 profile image
Chris Bongers

I had comments on a SSG before, there are several options there.
Either you can use an external service for this.

Or you can roll out your own solution with cached files on build.
There are some amazing write-ups around that.

Also you could still leverage any normal database, the updates would just not be realtime.

Collapse
 
dailydevtips1 profile image
Chris Bongers

It happens so often they think they do 👀

Collapse
 
dailydevtips1 profile image
Chris Bongers

Exactly, whatever works for you is always the best fit

Collapse
 
shifi profile image
Shifa Ur Rehman

Or! Use excel spreadsheets :p

Collapse
 
dailydevtips1 profile image
Chris Bongers

Indeed!

Got some fun projects running on a google sheet 👀

Collapse
 
jpkeisala profile image
Jukka-Pekka Keisala

You don't always need CMS if you are a developer. But if you are building a website for a customer that doesn't know what is markdown or html you need a CMS.

Collapse
 
luizhap profile image
Luiz Henrique

I agree with you. Netlify CMS works great for this case.I agree with you. Netlify CMS works great for this case, because it generates the markdown file behind the scenes but there is a "self-hosted" CMS for people who are not developers.Is there a tool that does this too?

Collapse
 
dailydevtips1 profile image
Chris Bongers

Exactly the point "not always" 🙌

Collapse
 
matthewbdaly profile image
Matthew Daly

One common issue I have experienced is that some clients then decide the CMS is too difficult for them to use, and leave it to the developers to update. So you then end up with a solution that the client isn't willing to use, but is also suboptimal for the developers.

Case in point, at work I got asked this week to add some new blog posts to a Drupal site, because it was too complex for the client to manage, but it was a chore for us because the client provided everything in Word documents, meaning we had to spend ages copy pasting content and adjusting formatting for stuff that would be a breeze if we'd been able to set it up to allow Markdown. As someone who suffers from RSI, this got painful for me very quickly.

Collapse
 
dailydevtips1 profile image
Chris Bongers

I definitely been in your position Matthew 🤦‍♂️