When you have a JAMStack website, you need some way to edit your content.
In this article, we‘ll go over the different options you have, so you can find the editor that best suits your content workflow.
The two basic options are publishing based on Markdown files, and publishing on a headless CMS.
In a traditional CMS, the content editor, backend, and your website are all bundled into one application. Typically, on each request for a website, the backend fetches the latest version of an article and renders it on the fly.
Most headless CMS on the other hand only contain the editor, store your content (texts, images), and offer the content via an API. This way, JAMStack websites are only built when content changes and are otherwise served as static websites.
Here are 6 options for editing content for JAMStack sites.
The first option most JAMStack starter projects offer is to render content from Markdown files with front matter. I've written a blog post about how Gridsome loads Markdown files.
You have three choices when you want to keep all your blog posts in your Git repository:
Headless, API-based CMSs offer a smooth editing experience with collaborative features and often a compelling visual editor. When you want to use a headless CMS, you have many options at hand. You can either use Open Source projects or one of the paid services.
Some traditional CMS also offer APIs. The JAMStack community integrated with them, so now you can use APIs of popular open source CMS for your JAMStack projects:
Apart from open source CMS, there are plenty of paid headless CMS, many of which have a free plan. Two interesting options are Sanity and Contentful:
Both have great documentation and offer a REST API and a GraphQL API. Also, both Sanity and Contentful have a free tier, but the price quickly gets higher.
There are many more headless CMS services, e.g.: Storyblok, ButterCMS, Contentstack, GraphCMS, Prismic, Strapi, ...
Other blogs have written excellent comparisons between different headless CMSs.
As with most software projects, the key is to start with a solution that works for now and improve from there.
This blog started with editing bare Markdown files. After trying out Netlify CMS and discarding it for its lack of mobile optimization, I'm now using Forestry.
Two posts to go on from here: