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 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.
- Similar experience to Contentful
- Unlimited users
- Likely as expensive as Contentful: no self-service pricing options, just a "Contact Us" under every plan (why even have individual plans listed then?)
- 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
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.
- Cheap
- Completely customizable: plugins can do almost anything, we can fork it.
- It's just Postgres under the hood.
- Likely needs significant customization for our use case
- No "draft mode" preview by default - guidance on forums is to override a controller in NodeJS
- 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
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 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 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.
They allow one Page content type, and everything else is a "Collection". Their data model doesn't fit well with ours.