Fully managed monthly subscriptions (SAAS)

1-5 stars / $~50 $$~500 $$$~1000 $$$$~2000 🎇🎇=supports Cloudinary for images, 🎇=built-in image resizing CDN

Not yet tested:

squidex.io ($50/mo) Great for developers, good interactive data documentation.
scrivito.com ($2000/mo) includes in-place editor for marketing components

Contentful ⭐️⭐️⭐️⭐️ $ - $$$$ 🎇🎇

It’s the most popular option. The standard. A quality product. Good UI. Totally free for up to 5 users! Team license is $490 per month for a 10 user license. However, if you need scheduling, just that will be an additional $2000/mo, and you have to get the team license also!
Supports versions. CLI tool for backup/restore. Good documentation.
When setting up content types, I’m impressed with their app UI. It’s incremental. So, it’s very powerful, but not overwhelming. Click “save” with the basic options, or “save and configure” and a new window opens with many more options. If you don’t choose an “entry title”, which is the primary database column, then it chooses for you - the first text field you added, but you can override this. You can choose "short text” with exact match or “long text” with full-text-search.
Searching the content items is very easy with their great search and filter search input UI. The UI in general is beautiful. Not the most efficient, but pretty good. CosmicJS is faster for editing.
The “environments” are weird, not like staging→production. But, it’s better than nothing, can at least be used for backup/restore. Confusing UI to admins, but “editor” users are protected from dealing with this dark magic. They’ll just need to reach out to an “admin” if they broke something.
The weird environments are actually a good thing! Read more. Scroll down to see why it’s good.
If you do not use Cloudinary, then image management is be a pain. And even with Cloudinary, embedding images into text areas could be better.
Contentful upload issuesContentful environments

Kontent ⭐️⭐️⭐️⭐️ $$$$ 🎇🎇

If you need team collaboration tools, this is the only good option.
  • A content item is marked “waiting for approvals” from another person or “pending product design” or something similar, with short colorful tags
  • Edit together with team members in real time
  • Manage which users can access which type of content, which group, which settings
  • Includes task management (may need enterprise upgrade for this)
  • Single Sign On support
A nice thing about this is if a content is scheduled to go live at a later date, nobody is able to edit it before first cancelling the schedule. That way, there are no confusions about what edits are going to be published.
Many powerful features. Considering this, I’m impressed how fast the app is, and not cluttered.
However, the content modeling and content filtering UIs are awkward.
Adding Cloudinary will take a bit of coding, but other custom integrations are also possible.

ContentStack ⭐️⭐️⭐️⭐️ $$$ - $$$$ 🎇🎇

Great reviews. Has Contentful Integration. Starts at $1000/month. Must schedule demo with sales to try it.
Many workflow states, but only in the more expensive package. This system is built with team collaboration in mind, but Kontent seems better for this.
Great combination of repeatable data plus templates. Could be very useful! See https://www.youtube.com/watch?v=5Piwk5gRJfY&t=10s

Agility ⭐️⭐️⭐️⭐️ $$$ 🎇🎇

It has all the features of Contentful, even Cloudinary integration! It’s initially more expensive, starting at $900/mo compared to Cloudinary’s $489. However, Contentful with scheduling costs $2489, so Agility is actually much cheaper! Scheduling is useful, because if you have content (ad, promo, feature, legal disclosure) that is to be shown only for a certain time, then it can automatically be published, then removed, without having to manually and edit the content.
A great differentiating feature is the ability to compose markup and style for different sections in a page, and arrange those sections on each page like in a traditional CMS! Now, you can use a Headless CMS for marketing pages instead of just repeatable standardized content. Unfortunately, this feature is pretty basic. I don’t know how we would do A/B tests with it. It doesn’t seem very powerful, but it’s better than managing all the content in the codebase.
They have additional functionality to let you edit some of the HTML that they generate. That can be very powerful, like if we want to add a custom “alt” property to an image, or a className for Google Analytics to track a button click, or add an onClick to track some user interaction. You can add custom CSS styles to everything. And even add custom JavaScript to pieces of content!
If you do not use Cloudinary, then Agility’s media library is actually the best that I’ve tried. It’s better than Contentful, because it lets you upload images into specific folders. Contentful has tags, but they’re not as useful. Even images you upload into the body of a text area are put into their own folder. No other system organizes their uploads.
Minus 0.5 stars because their app styling feels a bit old compared to the others. It’s actually just as fast and good as anything else, but the design is not as inspiring.
Minus 1.5 stars because there is no backup/restore or environments. There is an option called “Batch”, to group multiple changes into one release. But then your team members must remember not to publish a piece of content that is “batched”, otherwise the pending changes will go live. And, you can’t undo the batch release. Contentful’s environments are pretty weird, but much better than nothing. I tried looking through documentation and searching the web, and this brings up another issue. There’s not much help out there with tricky issues like this.

CosmicJS ⭐️⭐️⭐️ $$ 🎇

Demo: https://app.cosmicjs.com/ps-production/objects/?type=photos
A cheaper alternative to Contentful and Agility. This is $100/mo for 5 users, and $300/mo for 10. Free for individuals. Scheduling is included in the price, compared to Contentful’s $2000/mo!
UI is intuitive, easy to learn and get around. It’s very quick and efficient to use. Just one click to save changes to a post. Just one click to create a new post after editing a different post. Other platforms require 2, 3, or 4 clicks for such repetitive things.
Image transformation and optimization just by changing the URL! Straight from the CMS! No setup. No 3rd party integrations. (Ex: https://imgix.cosmicjs.com/ff7799d0-5940-11ec-88b1-5377807b2a13-sq.jpg?fm=webp&w=600) Just like Cloudinary! Cloudinary is better because it’s an entire file explorer, but this almost as good.
Unfortunately, when you need to replace an image (instead of upload a new one), uploads are put into one giant list, doesn’t matter which content type they are. So, it will be difficult to find and reference later. You can go through and organize them in to “folders”, but not at the time of upload, so it’s not useful. At least uploading a new image is very quick, so you can just keep re-upload an image if you can’t find it.

Directus ⭐️⭐️⭐️ $

Extremely powerful data modeling! Can be self-hosted for free. The only system that shows image previews in the list, not just text. Includes many options that other systems can’t touch.
Does not support image manipulation/resizing unfortunately. Otherwise would be 5 stars.
Read more about Directus CMS

Storyblok ⭐️⭐️⭐️ $ - $$$$ 🎇🎇

$411 for the team plan, which includes even more features than Contentful’s $1,689 plan.
Nestable reusable content block templates with in-place editing, for marketing pages! Even able to send changes to a collaborator for approval. Amazing! Supports NextJS.
Easy to extend functionality with custom types, tools, and tasks. Plus all the expected Headless CMS stuff like unlimited content types and fields.
Custom roles - define which users can edit which content types.
Roll-back to previous edit is available.
Image optimization, content versioning, preview environments available on every plan.
Cloudinary and scheduling available with the team plan.
Real staging→production workflow available! (but only with the expensive enterprise plan)
Unfortunately, it’s difficult to execute a good “in-place” editor in a Headless CMS.
  • It’s awkward switching between the standard headless “form” content editor to the live in-page preview. The UI can be confusing. Also, it may be confusing because the preview will be different in the CMS than how it looks in the app.
  • To develop the in-page preview for the CMS requires building the editable components with “liquid” templates. So, even though they support NextJS and React, I think it may be for more of a traditional website that shows static content. We have a full featured app, composed from JSX components. We pass data down from top to bottom, variables controlling which content to display, and AB tests, all using the inner workings of React. That may all be too much for Storyblok.
  • When I try to edit a blog post in a new setup, I get the error “page.liquid is missing”. I could not find an answer online. This is another issue - it’s not a popular project, so there is not a lot of literature out there to help with it. So, even though it has more features for less money, it may not be the right choice.

OpenText Content Suite ⭐️⭐️⭐️ $$$$ 🎇

Very “enterprise” and “corporate” set of products. Overkill for a small team. For large teams, would be worth scheduling a demo with them. Seems like they can host and serve the assets attached to each piece of content, and help with deployments and even some project management. So, maybe overkill even for large companies who only need a Headless CMS. But they do have Contentful integration, so that’s great!
The dashboards look great, but I did not personally test their CMS app.

Prismic ⭐️⭐️ $

It’s beautiful. It’s features are very good. The price is cheaper than anything similar.
Coming soon: Integration Field: a custom field for retrieving content from external product catalogs or custom APIs. Connect prismic.io to product catalogs, video management systems or any other external API.
Unfortunately, the UI is awkward. The buttons and app elements in general are beautiful, but it’s not clear what each one does. It all takes a learning curve to get used to. More importantly, it’s slow. It takes 4 clicks to simply save an item and get back to the list, with a pause between each click. That’s too much work.

Airtable ⭐️⭐️ $

A really great tool. Used as a back-end for many no-code platforms. Use it as a back-end for your own app. Using it as a CMS however is not quite a good idea. It may work for certain applications.
It can have user permissions, to lock down a column, so only an admin can edit a field that is used as an ID. Then, editors can edit the not-critical fields, so they won’t break the website.
  • Excellent data modeling, filtering, search, like a database
  • Edit content as easily as an Excel / Google spreadsheet
  • Add formulas and integrations like Zapier or Webhooks
  • Not enough controls and limitations for content editors. Can’t add regular expressions or any kind of validation to a field like URL or path or even minimum/maximum number. So, a content editor person can go in and break the expected format of a field. It’s a database, not CMS.
  • WYSIWYG text editor is very small and very basic. Though it has buttons like bold and link, it’s not user-friendly for non-technical users. It does support markdown for technical users.
  • Image management. If only they had Cloudinary integration, it could actually be a viable CMS. But using the current capabilities, it is not a good idea to use this as a CMS. You can add file attachments, even as multiple fields on the same content type, but the thumbnail is difficult to preview, and then there is no integration with a CDN or image resizing/optimizing.

Netlify ⭐️ $

Seems too basic for enterprise, but good for individual devs.

DotCMS ⭐️ $

It’s very very slow! App is bad. Great features though. Try the instant “sandbox” demo app: https://dotcms.com/demo/getting-started

Enonic ⭐️ $$

Doesn’t look great from the video walkthroughs I watched. I don’t think it’s worth considering. Cloud hosted option is very expensive anyway.