I'm thinking about building a blog page using headless CMS, that said, I'm new to headless CMS world and currently is in a researching phase.
- What aspects should be considered before making a choice (e.g., must-have features, must-avoid due to issues, etc.)?
- Which solution would you recommend? Why?
- Strapi
- Contentful
- Directus
- Sanity
- GraphCMS
- Prismic
- Drupal
- WordPress
- GhostCMS
- Or something else
Some requirements on top of my head are (not strictly required though):
- Has Next.js / TypeScript integration (dynamic website)
- Has cloud hosted options
- Has SSO (e.g., front-end users, back-end users, etc.)
- Has markdown editor
- Has article scheduling
- Has localization
- Has content backup to GitHub or third-party storage solution
- Has SEO integration (tags, analytics, schema, etc.)
- Has a wide variety of configurations, such as plugins (mailing list, webhook, payment, etc.)
Oldest comments (33)
WordPress it is the cheapest and works.
Probably not the cheapest as other solutions also have free tiers or self-hosted option. When coming to ease of use, a standard WordPress is arguably the best. However, I will use it in a headless way, so that is not an advantage anymore.
WordPress has free forever tier too maybe you did't know, just look at the website it is a bit hidden, I have dozens of sites running on wordpress free tier, also the wordpress.com free tier allows you to use it as a headless cms too just like the self hosted version it has the same rest api no difference.
I would go for WordPress just because I use it quite frequently. I'm yet to build a headless website using WP, I'm soon going to take a look at it.
I can share a personal experience with WordPress. We used it as a headless CMS until a year ago. It's possible things have improved meanwhile, but at the time it was the worst choice for headless CMS by far.
Here's the thing: most WordPress + Next.js starters and tutorials will show you absolute basics. Get list of articles from WordPress API, set innerHTML for the post content, done. Things get tedious pretty quickly if you attempt to do anything more complex like, use WordPress blocks. Want to style blocks with custom behavior? Good luck, WP gives you a monolithic HTML with no information about the blocks, so prepare to do some extra parsing and DOM gymnastics to get done anything more complex than render a text. Even embedding a tweet is a problem, the respective block will render
<script>tag for you, but that won't work with innerHTML. Also, some blocks will happily set inline styles for you.In comparison, most headless CMS provide you with structured data which can be easily transformed and rendered the way you see fit. WordPress will just give you an HTML blob. Oh, and be also prepared to install a lot of plug-ins to make the API at least somewhat usable…
Thanks for the great insight!
Ok. What do you recommend?
Depends on the project.
For a personal blog, no CMS, just Markdown files committed to the repository; I like to keep things simple. We currently do that on Superface Blog, but it doesn't work well for non-technical users and handling image-heavy posts is painful. So I plan to use Notion as a backend. We use it for editorial process anyway.
In case of the WordPress-based project, its successor uses Contentful. I think it's okay choice, but the developer experience could be better. The team basically turned the headless CMS into a page builder and then they cornered themselves by using Contentful's GraphQL API which isn't appropriate for this use case. So it really depends on what sort of content you need to manage.
At the time we also tested Prismic which, compared to Contentful, felt more approachable and cheaper for smaller sites.
For page builder-like experience, Storyblok seems like an interesting choice.
If I needed a lot of structured content and/or heavily customized administration, I'd consider Sanity.
And for larger projects with possible needs for deeper customization and budget for on-prem deployment I'd look into open-source/open-core systems like Strapi, Webiny, or Contember.
I was going to say something but found your post said mostly what I wanted to say. I agree with your assessment based on my personal experience with MD, contentful, prismic, storyblok and strapi.
If you're going to go the WordPress route make sure you factor in time for site maintenance, and host it on something like WP Engine, where backups are taken care of and they specialize in security for WordPress. I've spent too much time cleaning up hacked WordPress sites to want to ever go through that again.
Also, do try out Webiny, it's got a great range of features, meaning it's built for enterprise use but it's also suitable for small blogs. It's also basically free to host because it's serverless, so it'll sleep when it's not being used.
Check it out! webiny.com
Thanks, that seems to be an interesting solution!
Payload
I’ve had some great fun messing around with Strapi and Gatsby to produce a statically-generated headless CMS website. While I haven’t implemented all the features you’ve listed, my understanding is that this tech stack can do all of it.
The flexibility of Strapi in creating your content types is awesome. I used Wordpress and Advanced Custom Fields Pro for years, and Strapi is like a breath of fresh air! Would definitely recommend you give it a try! 😊
use laravel wink from msaid, its awesome....
github.com/themsaid/wink
I suggest Ghost CMS, it meets your need. Easy to use. Headless and no headache.
I would choose Sanity, Strapi or Ghost.
I have recently experimented with Strapi. While it is nice, I feel the documentation isn't the best around.
For now I have picked up Sanity.io + Astrojs.
Another great option I would like to try is Directus