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…
I write about various topics that I'm currently learning, be it front end, back end, cloud, DevOps, etc., you name it!
For any questions you may have, you can reach out to me at: hello@hungvu.tech.
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.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
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.