Skip to content

Instantly share code, notes, and snippets.

@gburgett
Created May 31, 2024 16:00
Show Gist options
  • Save gburgett/4d49b0661f31ca1521d3c54dc9759dce to your computer and use it in GitHub Desktop.
Save gburgett/4d49b0661f31ca1521d3c54dc9759dce to your computer and use it in GitHub Desktop.
Contentful CMS Alternatives

Alternatives to Contentful CMS for Watermark.org

Recomendation: Investigate Contentstack further, maybe look into Strapi if Contentstack is too expensive. The rest are not worth it.

Note: Pricing here is my estimation of what it would cost to host 5 spaces - 1 large (paper signs) and 4 medium

Name Website Pricing Rest API? include param? Sync? CLI? Content type migration? Webhooks? Draft preview? Custom plugins?
Contentstack https://www.contentstack.com Contact US Y Y Y Y Y Y Y Y
Strapi https://docs.strapi.io $1k/mo y Y N N Y Y N y
Storyblok https://www.storyblok.com $3k/mo Y Y (depth 1) N N N Y Y Y
builder.io   per-view pricing (not sure how that would work?) Y Y N N N Y Y Y
Sanity https://www.sanity.io   kinda (GROQ)   N        
Prismic https://prismic.io $1500/mo Y Y   N N (explicitly no write API)    
ButterCMS     Y              
DatoCMS N (graphql only)
PayloadCMS Y Y N N N N Y Y

Contentstack

https://www.contentstack.com

Contentstack is the most full-featured, enterprise-y headless CMS I've found. It is very similar to Contentful. It has a lot of the tools we need, and the API is very similar (including a Sync API). It would be fairly straightforward to write a translation layer into the wcc-contentful gem, and we could support most of the Contentful features.

Pros

  • Similar experience to Contentful
  • Unlimited users

Cons

  • Likely as expensive as Contentful: no self-service pricing options, just a "Contact Us" under every plan (why even have individual plans listed then?)

Dev Actions to Migrate

  • Write wcc-contentful API translation layer (potentially Sync-only if we don't need to support preview for smaller apps)
  • Write wrapper/tooling around existing Contentstack migration tooling which does not track a history of migrations
  • Write CLI tool to transform contentful-schema.json into a Contentstack migration
  • Write CLI tool to export content from Contentful, format it in a JSON format for Contentstack, and import via their CLI

Strapi

https://strapi.io/

Not as full featured as Contentful or Contentstack, but extensible. It's a self-hostable NodeJS application that we can essentially fork and customize, or write plugins for. Then we can deploy it on Strapi Cloud.

Pros

  • Cheap
  • Completely customizable: plugins can do almost anything, we can fork it.
  • It's just Postgres under the hood.

Cons

  • Likely needs significant customization for our use case
  • No "draft mode" preview by default - guidance on forums is to override a controller in NodeJS

Dev Actions to Migrate

  • Create a new Strapi project & figure out local development story - it's not the same as Contentful!
  • Write wcc-contentful API translation layer (remember - no Sync available!)
  • Write CLI tool to transform contentful-schema.json into Strapi database migrations
  • Write CLI tool to export content from Contentful, format it in a JSON format, and import via their Import JSON tool
  • Build a Plugin (preferred) or Override a Controller (not great) to support draft preview

Builder.io

https://builder.io

This one charges per pageview, and I couldn't find any other pricing models. If they want us to include their pixel on our site so they can monitor our pageviews, I think that's a non-starter. In addition, the feature set is not any better than Strapi.

Sanity

https://www.sanity.io

Sanity has a weird query language called GROQ, that would be very difficult to write an adapter for. I don't think that's worth the dev effort.

Prismic

https://prismic.io

Prismic has a first-class Page and Section type, which is great because that maps to what we already have. However they intentionally have no write API. So automatic migrations are out. They do have a JSON import tool, but if we can't script that, it will be difficult to port over our larger spaces.

ButterCMS

They allow one Page content type, and everything else is a "Collection". Their data model doesn't fit well with ours.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment