A Thoughtful Approach to Choosing a Modern CMS
In an age where content is king, the choice of a Content Management System (CMS) is akin to forging a bond with an unknown force that holds sway over all of your endeavors.
As creative creatures navigating the complex collision of man-made machines and natural beauty, it is crucial to approach CMS selection with careful consideration, lest one finds themselves shackled to an ill-fitting system for eternity.
Many times, you don't even need a traditional CMS at all: just use your computer's existing filesystem and tools.
My experience with CMSes has primarily been within the bustling world of news organizations, where stories are often birthed in familiar tools like Word or Google Docs before being shepherded into a CMS for finalization, and time is of the essence.
However, CMS platforms' limitations become apparent when embedding or styling non-text content. Elements such as full-screen videos, interactives, and scrollytelling might need to be hosted externally, accessed via links or iframes, and may not be responsive. This is extremely frustrating for everyone involved.
- The argument for no CMS
- The argument for a CMS
- Twitter as a model CMS
- Markdown-powered CMS
- What a CMS should do
- How do you handle versioning?
- Where do you keep your media?
- Where do you host it?
Table of contents
The argument for no CMS
The longer you keep your content outside of the CMS, the longer you have complete control over your code and you don’t have to worry about compatibility issues and artificial limitations.
The downside is that it takes time, effort, and intentionality to build everything from scratch. If you want to add features like comments or social sharing, you have to build those yourself or find a plugin that works with your system.
But the tools and frameworks for creating websites quickly change the equation. If I can use tools like Tachyons, Nuxt, and Supabase to create complex scalable applications in hours, why would you then spend additional hours trying to get it to work within the limitations of a legacy CMS? 2022 Prototyping Toolkit
Redefine 'CMS' and bring your own
But what does it actually mean to not have a CMS? It means that instead of entrusting your database of content and assets to a third party, you treat them like you already do; as folders of content in your local filesystem. This encourages a bring-your-own CMS approach; use whatever Markdown editor you want. Use whatever image editing tool you want. By bringing your content out of a traditional web-based CMS, you unlock the ability to use your existing toolset without the friction of working through web-based recreations with a fraction of the functionality.
You can keep your folder of assets in markdown in sync with whatever system you want; a GitHub repo, Dropbox or Google Drive folder, or using keeping it all in an Obsidian Vault and using Obsidian Sync.
The important thing is that you can switch between any of these options at any time. This also lets you change your mind, quickly, easily, and repeatedly. Because your content is kept out of a database, you don't have to add additional plug-ins or re-craft taxonomies in new tools. The Markdown ecosystem is incredibly vast, and every user can bring their preferred solution to the content without affecting anyone else.
It's essential to acknowledge that no single solution can cater to everyone's needs, and the perceived advantages of a CMS may not always outweigh the drawbacks, especially when it comes to migrating to a different solution down the road.
Furthermore, the expenses associated with hosting, licensing, and maintaining a CMS might be a deterrent, especially for individuals and smaller organizations with limited budgets. On the other hand, the expenses associated with having creatives and developers create custom-built solutions without existing templates/and frameworks may outweigh the benefits of creative freedom if not managed correctly.
The argument for a CMS
Proponents of CMS platforms often emphasize the efficient workflows and user-friendly interfaces a well-chosen system can provide. By offering a unified structure and set of tools, modern CMS platforms simplify content management, enabling even those with minimal technical expertise to contribute effectively and move quickly.
Twitter as a model CMS
It is incredibly easy to throw together a twitter thread and have it be easily digestible and shareable. With the freedom to interweave images or graphics, Twitter's CMS permits bursts of raw emotion and inspiration with the immediate feedback of likes, retweets, and comments. Few CMSes can rival the pleasure and simplicity of Twitter.
There is an undeniable allure to the ease of use and the minimalistic approach to maintaining a Twitter account. For many wandering souls in the digital world, Twitter stands as the best CMS they have ever encountered, much like the unexpected places where creativity and truth-seeking converge.
Markdown's simplicity as a plain-text format allows for effortless writing and editing using any text editor or even the built-in editor in a CMS. As a standard format, migrating content between CMS platforms becomes a breeze.
Nuxt Content powered by Markdown
Nuxt Content is a powerful CMS alternative that uses Markdown as its content format. With Nuxt Content, you can easily create and manage a website without having to worry about complex database schemas or cumbersome UIs.
I use Nuxt Content to power my website
Nuxt Content also provides a lot of powerful features like automatic syntax highlighting for code blocks, support for YAML front matter, and a plethora of modules that make it easy to generate opengraph images, include Google Fonts, and a bunch of other useful things.
Markdown editing tools
- IA Writer Site Unreachable
- Obsidian Why I love Obsidian
Ultimately, the decision to implement a CMS rests on carefully assessing the available options and considering one's unique situation; but "we need a CMS" should never be the default option.
A well-informed and discerning approach to CMS selection can enable teams of content creators and developers to maintain a productive balance between freedom and speed.
By understanding the full spectrum of choices, we can confidently navigate the world of CMS platforms and select the solution best suited for our creative endeavors, even if sometimes the best solution is no solution at all.
If you ever find yourself creating a new hand-built CMS- you probably shouldn't. But if you do, it should follow these principles at minimum.
What a CMS should do
Be easy to use
A CMS should make it easy to make content.
A CMS should cater to both content creators and developers. It must be intuitive for content creators and allow developers the flexibility to easily extend and customize functionality without unintentionally causing issues.
Help your process
A good CMS can help with the process of revisions, edits, and versioning. It might be a place where discussion or feedback takes place. It should reinforce your existing processes; not force you to adopt new ones.
Your CMS should be secure. This means that it should be regularly updated to fix security vulnerabilities.
It should have authentication features like password protection and user permissions to control who can access the CMS and what they can do. Publishing and editing live articles should be available to a limited number of users.
Your CMS should be scalable. This means that it should be able to handle large spikes in traffic.
How do you handle versioning?
Text should be versioned in easy to see snapshots in time with simple functionality to revert place in time. It should be easy to see all the changes made and who made them.
Graphics and interactive data visualizations should be stored in GitHub and each published version should be a new release and version number bump with a CHANGELOG of the differences between versions.
It should be easy to see any version of any asset and compare them.
CMSes could also do more to help with project management by showing versions to users as well as item status, deadline, and assignment information. Often this information is captured in software outside the CMS, but it would be great to have it all in one place.
Where do you keep your media?
Cloudinary is a cloud-based service that allows you to store, manage, and deliver your media assets. It provides a lot of features around image transformations and optimizations that make it a powerful option for displaying images and video.
Amazon S3 is a cloud-based storage service that allows you to store and deliver your media assets. A lot of organizations already use S3, and it can be way easier to start putting assets in a new bucket in an S3 account that exists already.
Where do you host it?
Netlify is a cloud-based hosting service that allows you to deploy and host your website.
It has a free plan that allows you to deploy up to 3 sites and gives you 100GB of data transfer per month.
It also has a paid plan that allows you to deploy an unlimited number of sites and gives you unlimited data transfer.
Amazon AWS is a cloud-based hosting service that allows you to deploy and host your website.
It is probably the most-used hosting service, but it is also the most expensive.
Self-hosting your website is an option if you have the technical expertise and resources to maintain and secure your server. It can give you complete control over your website, but it also requires a lot of work and can be costly in terms of time and money. It is not recommended for most individuals or small businesses without dedicated technical support.