Help yourself to some content
This is a bit of a continuation from last week when we started talking about headless CMS tools. I’ve had a chance to use two of the services I mentioned in that issue, and I will talk about that later.
The main difference between this set of CMS tools and the ones last week is that these aren’t services. They are products, or if you prefer, you can call them tools. Either way, they are things you download and run or host yourself. However, each of the options below are a bit different.
Netlify CMS
Netlify CMS is an open source tool brought to you by the folks at Netlify. It is probably the most unique one of this list because unlike all of the others, this week or last, Netlify CMS isn’t API-based, it is Git-based. Instead of having a database, it reads from and writes to a Git repository. Originally it only supported Github, but I believe Bitbucket and Gitlab are also supported now. You simply add a couple of files to your static site, exposing an /admin/ URL where the CMS lives and it loads up content from a preconfigured repository. These files are typically Markdown based with front-matter. Once you finish working on your content you save/commit back to your repository. At that point if you are using Netlify hosting, your site would be rebuilt and redeployed. It even supports an editorial workflow based on pull requests.
Ponzu
Ponzu got my attention for a couple of reasons, first that being written in Go, it is distributed as a single file binary with some assets. Easy deployment. The other think I liked was that it doesn’t require a separate database server. It uses an embedded database. It is API-based, and it seems to be more developer focused with the majority of the operations being command line driven.
https://github.com/ponzu-cms/ponzu
Strapi
Strapi appears to be one of the most popular open source, API-based options. It is written entirely in JavaScript and supports multiple database options, including the default of SQLite meaning you can get started right away. It also supports GraphQL through an optional plugin.
Cockpit
Cockpit is another popular choice and is PHP based. So if you are already invested in that stack, this could be a good choice. From what I can tell from the screenshots, the UI looks pretty solid as well. It is API-based as well, giving you a wide range of options for consuming the content.
Observations
Last week I was in the process of trying out Sanity as a CMS service. It seems pretty solid, and it is definitely a good choice for maximum customization. However, I felt the UI was a bit clunky. Plus the configuration was all done in code files. And while that allows a lot of control, it wasn’t ideal for a quick site.
Afterward, I tried out Contentful. It felt a bit more polished. That and I was able to quickly set up my content in the UI. It still isn’t perfect, but it is more quickly usable. Sanity used a custom query syntax to access content, while Contentful has a more simple JSON API. I’m sure both bring other things to the table, but first impressions are more favourable for Contentful.