DEV Community

Cover image for Which headless CMS would you recommend for a blog site?
Hung Vu
Hung Vu

Posted on

Which headless CMS would you recommend for a blog site?

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.

  1. What aspects should be considered before making a choice (e.g., must-have features, must-avoid due to issues, etc.)?
  2. 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.)

Discussion (32)

Collapse
jnv profile image
Jan Vlnas • Edited on

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…

Collapse
hunghvu profile image
Hung Vu Author

Thanks for the great insight!

Collapse
jwp profile image
John Peters

Ok. What do you recommend?

Collapse
jnv profile image
Jan Vlnas • Edited on

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.

Thread Thread
annietaylorchen profile image
Annie Taylor Chen

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.

Collapse
paulknulst profile image
Paul Knulst

I personally use Ghost CMS!

  • developer friendly
  • could be used as headless cms with gatsby: gatsby.ghost.org
  • could be self hosted easily with docker: knulst.de/how-to-self-host-ghost-b...
  • could be cloud hosted (cheap)
  • SEO friendly
  • payment integrated with stripe (no fees)
  • mailing list (with mailgun)
  • localization (with themes)
  • many other plugins
  • many more features

Check out my personal instance: knulst.de

Collapse
hunghvu profile image
Hung Vu Author

Thanks for the demo!

Collapse
akashm profile image
Akash Mahajan

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

Collapse
sunesookhan profile image
Sune Quist

I used Strapi. mostly because of the easy and quick way to set it up, and the nice UI.

Though I would highly recommend prismic, not from my own experience though. But from a lot of my colleagues or friends, who have been working with it over the years.

I could go into why a little bit more, but I do not think I have enough experience with prismic to compare the two, but it is simply a recommendation from other people through me.

Collapse
tqbit profile image
tq-bit

I'm using Ghost for my blog and can recommend it because

  • It's developer AND content creator friendly
  • It's headless if you need it to be with a good api documentation (and code samples)
  • It has reasonable pricing and can also be selfhosted
  • It can be extended with webhooks (functionality for this is also well documented)
Collapse
waylonwalker profile image
Waylon Walker

I have used forestry.io in the past, its pretty simple to setup, and uses git as a backend. It felt like a good way for me to author articles when I was away from my main machine, but I ended up not using it as much in favor of writing in my comfy editor.

Collapse
endymion1818 profile image
Ben Read

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

Collapse
hunghvu profile image
Hung Vu Author

Thanks, that seems to be an interesting solution!

Collapse
danwalsh profile image
Dan Walsh

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! 😊

Collapse
chriis profile image
Chris Gregori

I just finished building my new personal site using Sanity and Next.JS - chriis.dev - I'm writing a post too on how some of the fun bits work if that's of use to you!

Collapse
hunghvu profile image
Hung Vu Author

Hi Chris, the site looks great to me. I'm looking forward to read more about your experience with Sanity!

Collapse
chriis profile image
Chris Gregori

Excited to delve deeper! I might write a blog post about the details of Sanity but here's the introduction post to the site in general if you're interested!

Thread Thread
hunghvu profile image
Hung Vu Author

Gorgeous! Love the minimalism style and subtle animation. Thank you for sharing. ❤️

Collapse
arcktosh profile image
Ben Henning

From my experience, I always choose Strapi, we built a Social LMS platform for universities and schools, with constant changes as a requirement Strapi enabled us to make large architectural changes in short timespans without causing damage to existing development.

Collapse
ivanjeremic profile image
Ivan Jeremic

WordPress it is the cheapest and works.

Collapse
hunghvu profile image
Hung Vu Author

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.

Collapse
ivanjeremic profile image
Ivan Jeremic • Edited on

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.

Collapse
christopherkapic profile image
Christopher Kapic

I love Directus. You can run it in Google Cloud Run for very cheap, and I have yet to come across a feature that another headless CMS has that Directus does not have.
I would stay away from Strapi. It seems flashy, but I have been annoyed when actually trying to run it in production.

Collapse
brense profile image
Rense Bakker
Collapse
webhandwerk profile image
WebHandwerk

Storyblok. It has a visual Editor :-)

Collapse
saosangmo profile image
saosangmo

I suggest Ghost CMS, it meets your need. Easy to use. Headless and no headache.

Collapse
jonrandy profile image
Jon Randy

A blog would be a near perfect example of something that doesn't require a headless CMS

Collapse
hunghvu profile image
Hung Vu Author

Would you mind elaborating other non CMS options? I would like to heavily customize the website so a traditional website builder is not an option for me (at least that is what I'm thinking now).

Collapse
katafrakt profile image
Paweł Świątkowski

this

Collapse
msamgan profile image
Mohammed Samgan Khan

use laravel wink from msaid, its awesome....

github.com/themsaid/wink

Collapse
andrewbaisden profile image
Andrew Baisden

I would choose Sanity, Strapi or Ghost.

Collapse
mjcoder profile image
Mohammad Javed

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.