Content Management System
an all-in-one platform for automating modern web projects
Before we talk about headless content management systems, I should probably start us off with what a standard content management system is. You can probably guess it is a tool used to manage content, but I think we can do better than that. It is a software application enabling users to create, edit, collaborate on, publish, and store digital content.
Again, we’re specifically focusing on the headless breed– meaning its content repository is separated from its presentation layer. That generally means your developers will be responsible for the presentation layer– meaning they will guide how the app users will interact with the content. With a headless CMS, the developers on your team will have plenty of opportunities to demonstrate their ability to develop custom code. They should also know how to get the content found by search engines.
There are so many headless CMS out there, so how do you go about shopping for the right one? This discussion should at least point you in the right direction. I can tell you it’s hard to have a CMS conversation without Contentful in it, so you’ll want to keep that on the table.
We use a lot of Next JS, so that causes us to lean towards CMS’s like Agility CMS and Sanity. They have other key CMS features in common. For example, they’re both Netlify friendly, they both have a fairly generous free tier in terms of web content, and their free tiers include multiple users.
Netlify has become a very attractive option for anyone looking to create a new site. Even if you don’t have a CMS, it gives you the option of using a git repository to store your content.
Netlify has a Node-based CLI that lets you configure continuous deployment. The CLI allows you to build and deploy from your laptop’s terminal. If you prefer the dashboard, there is a continuous deployment tab where you can configure things like the build command and the publish directory. Don’t worry, there is also an environment tab that allows you to define and set the value of environment variables.
The differentiator between the two was Sanity felt a little more graphql-friendly, and it just so happens that was important to us, so we made a note of it. The process continued, and before we knew it, we had an informal product matrix for the CMSs we found interesting, and this greatly simplified our choice. There’s actually an online tool for this called CMS Matrix which may help you further.
I say this knowing if you asked 10 development teams which CMS they would prefer, they would probably say Agility. The moral of the story is you have to pick the right tool not only for your team but for your project as well, and it may not be what the majority of other development teams are using.
Before I go, I probably should share a couple of sites dedicated to discussions like these like CMS Critic and CMS Wire.
What is a Content Management System (CMS)? TechTarget. Last Accessed: 3/1/2021.
What is a CMS and Why Should You Care? Hubspot Blog. Last Accessed: 3/1/2021.
Get Started with Build Configuration. Netlify. Last access: 3/2/2021.
Build Environment Variables. Netlify. Last access: 3/2/2021.