Unconventional CMS'ing
Clients want their content editable. But often, allowing them to make simple edits on a website requires a lot of other stuff. This often leads developers to reach for opinionated systems that come with these features out of the box. However, this can interfere with the quality of output we aim for. Or it may take so much time to work with the system's preferred (or only) methods that developers find it more economical and sustainable to convince clients that a CMS isn't a necessary feature.
But perhaps some of these unconventional approaches can bridge the gap for certain projects, allowing you or your clients to edit content more easily or more frequently.
Google Drive
This is a fantastic approach for a wide range of use cases, from simple blogging to managing product listings and more. This method essentially uses Google Drive as cloud storage, with Google Sheets as a UI on top. It mainly requires some wiring and work on the integration side. In the end, it results in JSON that can be handled like any other JSON.
One caveat is that API requests to the Google Drive API must be made from Node to keep the authentication credentials secure, so direct client-side API requests aren't possible. However, there are ways around this depending on your setup. API requests could still be made from the Edge or with some serverless approach.
One way to handle this could be to fetch from the API only during the build step if you are statically generating your site, for example with Eleventy. Another important factor to consider is Google Drive's API Rate Limit of 300 requests per minute, which can be managed with caching strategies.
More about this:
- https://www.drivecms.xyz/
- https://css-tricks.com/creating-an-editable-site-with-google-sheets-and-eleventy/
- https://css-tricks.com/creating-an-editable-webpage-with-google-spreadsheets-and-tabletop-js/
- https://css-tricks.com/using-google-drive-as-a-cms/
Dropbox Paper
A similar approach for the same reasons can be applied to Dropbox Paper. Just like using Google Docs as a CMS, it features a visual interface built on collaborative tools. Commenting and versioning are built-in. Plus, Dropbox Paper supports markdown, which is great for a headless CMS approach. Markup is often context-dependent, and parsing markdown is easier than fully rendered HTML for context-specific changes.
One drawback is that Dropbox Paper does not communicate content updates via its API. This means that publishing new or updated content in Dropbox Paper still requires some manual triggering of the system that pulls in content from its API. However, this limitation may be easy to work around, depending on your goals.
More about this:
- https://www.voorhoede.nl/en/blog/dropbox-paper-as-a-headless-cms/
- https://www.dropbox.com/developers/documentation/http/documentation#paper
Notion
Notion is an incredibly popular system for managing knowledge and content. Users love its database features, editing experience, and ability to reuse the same content in various ways.
Since the release of its API in 2021, Notion enthusiasts have been using it for all sorts of purposes. The web is full of content on this topic. Instead of diving into details, we'll just share some additional links.
Much of this solution may depend on how familiar your clients are with Notion. Knowledge management apps tend to integrate deeply into an organization. Compared to other popular tools like Confluence or Obsidian, Notion offers a less painful way to utilize its API to display content elsewhere. So it might be worth considering!
More about this:
- https://www.thisdot.co/blog/using-notion-as-a-cms
- https://benborgers.com/posts/notion-blog
- YouTube Playlist: https://www.youtube.com/watch?v=mukkm6o6Pjw&list=PLoqZcxvpWzzdJiW95Y7nDqY8XsiKTgo17
- Portfolio with Next & Notion: https://www.youtube.com/watch?v=04exSpZ9IZ8
Github Issues & Trello
Now this one might be a bit unexpected and feel odd at first. But there's some elegance to it. It's not too far-fetched to see how existing document management solutions can also manage content on a website, but moving things on lanes? That may take some getting used to. But it's possible!
As with all the other systems, collaboration is built-in if you want it. Even more so with Trello and Github. The big advantage here is that both tools often serve as a source of truth for project or organizational progress. This way, multiple people from various professions are already familiar with its logical premises and models.
Github
Github has a GraphQL API that can be used to query issues easily. Its contents are markdown, and it offers built-in taxonomies via labels. Like all the other approaches, it requires setting up a token for authentication.
This approach is a bit more developer-friendly. It doesn't offer a visual interface, so knowledge of markdown is essential. However, it requires relatively little effort to query content and might be a good fit for smaller, specific use cases.
More about this:
- https://dev.to/muhajirdev/using-github-issue-as-cms-2de1
- https://github.com/renatorib/github-blog
- https://www.sykim.me/blog/github-issues-as-cms
Trello
The Trello API allows querying boards, lists, and cards along with their status. The exciting part is the addition of webhooks that trigger whenever a board, list, or card changes. This makes it easy to cache and means that updating content doesn't require any intermediate steps, as even for statically generated sites, a rebuild can be triggered by changing a piece of content, for example, by observing a dedicated lane or watching a card for a specific status change.
More about this:
- https://changelog.com/posts/trello-as-a-cms
- https://github.com/unplatform/husky-cms
- https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#your-first-api-call
- https://medium.com/@vrerabek/using-trello-as-cms-for-your-small-website-with-this-simple-php-library-f03c641c6ccd
There are even more unusual approaches. One company uses Figma as a CMS for static assets and someone explored options for utilizing Tumblr as a CMS..
As developers, we tend to think of CMS as rigid systems that allow us and our clients to operate more autonomously, but they can sometimes severely impact how we develop. However, sometimes all you need is simple editing and updating of a piece of content, not necessarily the ability to create entire pages. In these cases, considering some of those more unusual approaches to managing content may be just right! And who knows what other unconventional ways to manage content are still out there? Maybe you'll even be inspired to invent your own!