Contentful's free tier caps at 5 users and 10,000 records. Sanity's free tier is generous but logs you out of the studio above 3 users. Strapi Cloud starts at $30/month per project. If you're building anything more ambitious than a personal blog, the headless CMS subscription model gets expensive fast — and you're locked into someone else's data model, API limits, and uptime. The good news is that four excellent free, self-hostable CMS options exist, each with very different strengths. This is a practical comparison based on actually using all four to ship production sites.
Let's start with WordPress, because it still powers 43% of the internet for a reason. The classic WordPress setup — themes, plugins, the block editor — is unmatched for marketing sites and blogs that non-technical editors need to manage. With the WP REST API or the newer WPGraphQL plugin, you can use it as a headless CMS backing a Next.js or Astro frontend. The downside: the plugin ecosystem is a security and maintenance nightmare. Every plugin is a potential attack surface, and updates regularly break things. WordPress is the right call when your primary need is 'editors can publish content without bothering me' and you're willing to invest in hardening (Cloudflare, automatic updates, a managed host like Kinsta or Cloudways).
Strapi occupies a different niche: it's a headless CMS from the ground up, with a slick admin UI, content types you define via a schema builder, and automatic REST and GraphQL APIs. Self-hosting Strapi on a $10 VPS gives you unlimited users, unlimited content types, and unlimited records — the same setup on Strapi Cloud costs $99/month. The catch is that Strapi is opinionated about content modeling (it's a relational database under the hood) and the admin UI can feel sluggish with very large datasets. It's the right call when you're building an app or marketing site with structured content (products, case studies, knowledge base articles) and you want a clean separation between content and presentation.
Ghost is the dark horse of this comparison. Originally a blogging platform, Ghost has quietly become one of the best options for content-driven sites that also need memberships and email newsletters. Ghost's editor is genuinely the best in the business — better than Notion, better than WordPress Gutenberg, better than Sanity's portable text. It supports native subscriptions (Stripe integration built in), email newsletters (Mailgun integration built in), and a JSON-based Content API that works beautifully with Next.js, Astro, or any frontend. Self-hosted Ghost on a $5 VPS handles tens of thousands of subscribers for free; Ghost Pro starts at $9/month but scales to $199/month at higher tiers. For publishers, Ghost is the strongest pick.
Directus is the newest of the four and the most developer-focused. It's not a CMS in the traditional sense — it's a headless CMS that sits on top of your existing SQL database (Postgres, MySQL, SQLite, etc.), giving you an instant admin UI, REST and GraphQL APIs, role-based access control, and webhooks without writing any backend code. The killer feature is that your data lives in your own database with your own schema; Directus is just a layer on top. If you ever decide to migrate away from Directus, your data is already in a portable format. Self-hosted Directus is free; Directus Cloud starts at $25/month. It's the right call when you have a database schema you want to expose to non-technical editors without building a custom admin UI.
So which one should you pick? For a pure blog or publication with optional memberships, Ghost is the best experience. For a marketing site where editors need to manage pages without developer help, WordPress is still the most battle-tested option. For a structured-content app (products, case studies, docs) with a Next.js frontend, Strapi has the best DX. For a project where you already have a database schema and just need an admin UI, Directus wins. All four are free to self-host, all four can back a modern Jamstack frontend, and all four will save you hundreds of dollars per month compared to Contentful, Sanity, or Strapi Cloud. The decision is really about which content model fits your project, not which one is 'best'.