Originally published at devtoolpicks.com
Two things changed for Contentful customers this year, and both point the same direction.
The first is pricing, which has been the complaint for a while. Contentful has a free tier covering roughly 10 users, 100,000 API calls a month, and 50GB of CDN bandwidth. Past that, the first paid tier lands around $300 a month. There's nothing in between. No $29 plan, no $79 plan. A side project that outgrows the free limits goes from paying nothing to paying more than most indie hackers make from the product. Third-party trackers cite anywhere from $300 to $850 for that same tier depending on billing cycle and configuration, which tells you how much the real number moves.
The second is bigger. On June 1, 2026, Salesforce announced a definitive agreement to acquire Contentful. Both companies confirmed it. The deal is expected to close in the third quarter of Salesforce's fiscal 2027, subject to regulatory approval, and until then Contentful keeps operating under its current platform and terms. But if you're choosing content infrastructure for the next three years, "this is becoming part of Salesforce's enterprise stack" is a real input.
Here's the short version. Payload and Strapi are MIT licensed and free to self-host. Sanity has the most generous hosted free tier if you don't want to run a server. Directus is the pick if you already have a SQL database. And if you build in Laravel, Statamic is free for a single user, forever.
Five alternatives below, with honest notes on where each one hurts.
What does the Salesforce deal actually change?
Less than the headlines suggest, at least for now.
The agreement was announced June 1, 2026 and has not closed. Salesforce says Contentful will continue with the same platform, APIs, and support model, with deeper Agentforce integration on the roadmap. Every "AI-assembled content" claim in the announcement is roadmap rather than shipped capability, so judge Contentful on the product it ships today, not the pitch deck.
What's worth weighing is direction. Contentful is being positioned as the content layer for Salesforce's enterprise stack. Historically, that kind of move tends to sharpen focus on large enterprise accounts, which is not where a solo founder sits. Nothing about your pricing changes tomorrow. It's the three-year view that shifts.
One more angle if you're in the EU, as I am. Contentful was founded in Berlin, and acquisition by a US corporation brings it under US jurisdiction including the CLOUD Act. Open-source advocates raised exactly this point for European public sector use. If data residency is a compliance requirement rather than a preference, self-hosting stops being an ideology and starts being a checkbox.
Quick verdict
| Tool | Best for | Price | Rating |
|---|---|---|---|
| Payload | Next.js apps wanting CMS in the same codebase | Free, MIT. Cloud from $35/mo | 4.7/5 |
| Strapi | Biggest open-source ecosystem, self-hosting | Free, MIT. Cloud from ~$18/mo | 4.6/5 |
| Sanity | Hosted with no servers to run | Free (20 seats, 10K docs). Growth ~$15/seat/mo | 4.6/5 |
| Directus | Adding a CMS layer to an existing SQL database | Free self-host core. Cloud from $99/mo | 4.3/5 |
| Statamic | Laravel projects and marketing sites | Solo free forever. Pro one-time per site | 4.5/5 |
| Contentful | Enterprise content ops at scale | Free tier, then ~$300/mo | 3.9/5 |
Payload: the CMS that lives inside your app
Payload went from relatively obscure to the default recommendation in Next.js communities, and the reason is architectural. It isn't a separate server you call over an API. It's a Node package that runs inside your own project, so Payload effectively becomes your backend. It connects to Postgres or MongoDB, generates an admin UI, and exposes REST and GraphQL.
For a solo founder building a product rather than a brochure site, that's a genuinely different shape. Your CMS content and your application data can live in the same Postgres instance. Authentication, collections, and business logic sit in one Node app. Content types generate full TypeScript types automatically, so nothing leaks through as any. Local development needs zero external services.
It's MIT licensed and free, so you pay only for infrastructure. Payload Cloud exists at around $35 a month for managed hosting. It also went framework-agnostic and now works with Remix, Astro, and SvelteKit rather than Next.js alone.
Who should not use Payload: teams that want a mature ecosystem. It's younger than Strapi, with fewer plugins, fewer tutorials, and fewer Stack Overflow answers when something breaks at 11pm. Self-hosting is the primary path, so you own infrastructure, scaling, and security from day one. And because the CMS lives inside your app, non-technical editors depend on you deploying changes, which is fine for a solo product and awkward for an agency with ten client sites.
Strapi: the biggest open-source ecosystem
Strapi is the most established open-source headless CMS, with over 72,000 GitHub stars and roughly 100,000 weekly npm downloads. It's MIT licensed, self-hosted by default, and the Community edition is free forever. Strapi v5 was a significant rewrite with better performance, a revamped content type builder, and stronger TypeScript support.
The plugin ecosystem is the real advantage. When you need SEO fields, preview, or a specific integration, someone has usually already built it. It's also a standalone API server rather than a package inside one app, which suits you when several frontends consume the same content, or when a client's marketing team needs to edit without touching your deploy pipeline.
Self-hosting on a VPS, Railway, or Render is free. Strapi Cloud starts around $18 a month for Essential and roughly $90 for Pro, priced per project, and a cheaper cloud entry tier arrived in late 2025.
Who should not use Strapi: anyone allergic to ops. The software is free, the operation isn't. Self-hosted Strapi means running and patching a Node server, a SQL database, and media storage, which realistically means $50 to $200 a month of infrastructure plus your time once it's a real production site. Strapi Cloud's per-project pricing also adds up if you run several small sites, where a per-seat model might work out cheaper.
Sanity: the most generous hosted free tier
If you don't want to run a server at all, Sanity is the pick. Your content lives in Sanity's Content Lake, queries run through GROQ over a CDN-backed API, and Sanity Studio is a React app you embed in your own repo. There's no infrastructure, no patching, and the managed asset pipeline handles on-the-fly image transforms, which is a genuine amount of work you don't have to do.
The free tier is the most generous in this comparison: up to 20 seats, 10,000 documents, and monthly AI credits. For a blog or a content-driven marketing site, plenty of teams never leave it. Growth is around $15 per seat per month after that, and real-time collaborative editing is a feature the self-hosted options don't match.
Who should not use Sanity: anyone who needs data ownership or self-hosting. There is no self-hosted option, so if GDPR data residency is a hard requirement, this is the wrong lane, especially ironic given it's the reason some people are leaving Contentful. Per-seat pricing is predictable for a small team but adds usage-based charges at scale, and GROQ is a query language you'll need to learn rather than the GraphQL you already know.
Directus: a CMS layer over the database you already have
Directus solves a different problem. Instead of asking you to model content in its own system, it wraps an existing SQL database and gives you an admin UI and instant REST and GraphQL APIs over your actual tables. If you already have Postgres or MySQL with real schema in it, this is the shortest path to a CMS.
The pricing has an unusual and genuinely indie-friendly wrinkle. Beyond the free self-hosted Core tier (3 seats, 25 collections, 5 Flows, AI assistant), Directus runs an Open Innovation Grant that makes self-hosting free for organizations under $5 million revenue and 50 employees. That covers essentially every reader of this blog. Directus Cloud starts around $99 a month, and the Team tier is roughly $499 a month billed annually.
Who should not use Directus: anyone who wants a polished editorial experience out of the box. Because it reflects your database schema, the editing UI is only as friendly as your table design, and non-technical editors often find it more raw than Sanity or Statamic. The jump from free Core to $499 Team is also steep, so read the grant terms carefully rather than assuming you qualify forever.
Statamic: the Laravel-native option
If you build in Laravel, Statamic deserves a serious look, and this is the pick I'd reach for personally. It's a Laravel-based CMS that can store content as flat files in YAML and Markdown or use a database, and its control panel is one of the best-looking admin interfaces in the category.
Flat-file storage is the interesting part. Your entire site, content included, lives in Git. Deployments are pushes, rollbacks are reverts, and content migrations are file diffs. No database sync problems between staging and production. You can use Antlers, Statamic's own templating language, or drop straight to Blade for full Laravel integration, and the Runway addon gives you Eloquent-powered relationships when you need database-backed models.
Pricing is refreshingly simple: the Solo license is permanently free for a single user and genuinely usable in production, not a trial. Pro is a one-time per-site license rather than a subscription, listed in the $259 to $349 range depending on which source you read, and includes a year of updates with roughly $99 a year after that if you want to keep updating. Confirm the current figure on Statamic's own pricing page.
Who should not use Statamic: anyone not on Laravel, and anyone with high-volume transactional content. Flat files are excellent for marketing sites and blogs and poor for e-commerce catalogs with thousands of SKUs or heavy user-generated content. Runway and the Eloquent driver handle that, but with more setup complexity. Pro pricing is also per site, so an agency running many client sites is buying many licenses.
How do you choose?
Match it to the shape of your project.
- Building a product in Next.js or another JS framework: Payload. CMS and app in one codebase, one database, full TypeScript.
- Need a standalone content API with a big plugin ecosystem: Strapi. The most mature open-source option.
- Don't want to run servers: Sanity. The free tier is generous enough that many teams never pay.
- Already have a SQL database with real schema: Directus. Check whether the Open Innovation Grant makes it free for you.
- Building in Laravel: Statamic. Solo is free forever and content lives in Git.
- Enterprise content ops with a real budget: stay on Contentful. It's mature for a reason.
What does this actually cost?
Take a small marketing site plus a blog, one developer and one editor.
On Contentful, you're free until you cross the limits, then roughly $300 a month, which is $3,600 a year. That's the cliff. Nothing sits between free and that number.
On Sanity, the same setup fits comfortably inside the free tier, so $0, and even on Growth two seats is around $30 a month.
Self-hosted Payload or Strapi is the cost of a VPS. A $10 to $20 a month box handles a small site fine, though a busier production Strapi install with separate database and media storage realistically runs $50 to $200 a month once you size it properly. Call it $120 to $2,400 a year depending on scale, with no per-seat component at all.
Statamic Solo is $0 forever for one user. Pro is a one-time few hundred dollars rather than a recurring bill, which over three years is dramatically cheaper than any subscription here.
The pattern should be familiar by now: the open-source and one-time-license options have a flat cost curve, while the SaaS options bend upward with seats and usage. If you're pre-revenue, flat wins.
The verdict
For most indie hackers leaving Contentful, the honest answer depends on one question: do you want to run a server?
If yes, self-host. Payload if you're building a product in JavaScript and want the CMS inside your app. Strapi if you want a standalone API and the biggest plugin ecosystem. Both are MIT licensed with no per-seat cost ever, which is the whole point.
If no, Sanity. Its free tier is the most generous in the category, it removes an entire class of operational work, and $15 a seat is reasonable when you outgrow it. Just know you're accepting the same hosted-vendor dependency that made Contentful uncomfortable.
If you build in Laravel, Statamic. Solo is free, content lives in Git, and Blade means no new templating layer. That's my pick.
And to be fair to Contentful: it's a mature platform with genuinely good content modeling and multi-environment management, and it isn't going anywhere before the deal closes. If you're an enterprise team with a budget, none of this applies. If you're a solo founder staring at a $300 wall while your CMS gets absorbed into a CRM suite, there are five better options above.
If you're rebuilding the rest of the stack, our Next.js vs Nuxt vs SvelteKit comparison covers the frontend, Vercel alternatives covers where to deploy it, and Supabase alternatives covers the database underneath. For simple marketing sites where a headless CMS is overkill, Framer vs Webflow vs Carrd is the better starting point.
Top comments (0)