Name | Link | OpenSource | Self-Hosted | Multi-Site | MultiLingual | Headless-first | Content Blocks | Page Templates | Visual Previews | Language |
---|---|---|---|---|---|---|---|---|---|---|
Strapi | Strapi | ✅ | ✅ | ✅ | ✅ | ✅ | ❓ | ❓ | TS/JS | |
Payload | Payload | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❓ | ✅ | TS |
Webiny | Webiny | ✅ | ✅ | 💸 | ✅ | ✅ | ✅ | ✅ | ✅ | TS/JS |
Keystone | KeystoneJS | ✅ | ✅ | ✅ | ✅ | ✅ | ❓ | ❓ | TS | |
Apostrophe | ApostropheCMS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | JS |
Cockpit | Cockpit | ✅ | ✅ | ❓ | 💸 | ✅ | 💸 | ❓ | ✅ | PHP |
Craft CMS | Craft CMS | ✅ | ✅ | ✅ | 🟡 | ✅ | ✅ | ✅ | PHP | |
TinaCMS | Tina | ✅ | ✅ | ❓ | ✅ | ✅ | ✅ | ❓ | ✅ | TS |
Statamatic | Statamic | ✅ | ✅ | ✅ | 🟡 | ✅ | ❓ | ✅ | PHP | |
WordPress | WordPress.org | ✅ | ✅ | ✅ | 💸 | 🟡 | ✅ | ✅ | ✅ | PHP/TS/JS |
Sanity Studio | ⛔ | ⛔ | ✅ | ✅ | ✅ | ❓ | ❓ | ✅ | ⛔ | |
React Bricks | ⛔ | 💸 | ❓ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | |
Prismic | ⛔ | ⛔ | ❓ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ |
Last active
July 15, 2024 18:28
-
-
Save ebetancourt/62a263f543db302ca2f2dcf98ed7bcc5 to your computer and use it in GitHub Desktop.
Headless CMS Head-to-Head
Feature Notes
- Content Blocks - All of these CMSs "support" it, but some would require more work than others. Some have built-in block concepts. Others (like Statamatic) allow you to have a custom field that is a reference (foreign key) to another piece of content, placing it as a block within your content. For example, here is how it is done in Statamatic: Building re-usable content blocks in @statamic for better SEO + efficiency - YouTube - it's not ideal, it would be better if something supported it natively, but its possible
- Multi-site (aka Multi-tenancy) - since we are planning to render the site statically server-side, technically ANY of them will work - but this could impact live previews, visual editing, and completely closes off the option of having client-side rendered content, so ideally we should have it.
- Headless First - the CMSs marked 🟡 include a front-end as well. I thought it would be worth it calling it, since this might impact visual editing and previews
- 💸 anything marked with this icon requires either a paid plug-in OR only comes with the premium version (examples: Multi-site is only available with Webiny Business / Premium, Multi-Lingual WordPress requires the WPML Plugin
- Open Source - items marked
⚠️ are "source available" - they are a proprietary product, sold as runnable code, but has licensing limitations. Items marked ⛔ are closed-source products only available as hosted SaaS Products. - Closed Source, hosted SaaS CMSs have a
⚠️ before their name
Reviewing features, I think the first 3 to look at are:
- Payload
- Apostrophe
- WordPress
☝️ These three options seem like they hit everything we are looking for. WordPress has the added option of being what is currently in use, the Marketing Team already knows it, and content migration should be easier.
If we want to look at more options, I would next suggest
- Webiny
- Statamatic
- Strapi
Although Strapi was the front-runner coming into this, its oddities regarding multi-site and the fact that the domain and the Admin are tightly coupled knocked it out of the running. Since there IS a work-around, we can still consider it
The features I prioritized were:
- Open Source / Source-Available (Open Source strongly preferred)
- Multi-lingual Support
- Multi-site support
- Content Block editing support / experience, visual editing, visual preview
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Notes on Specific CMSs