Headless CMS 2026: Both Free On-Ramps Closed This Summer
Strapi deletes every remaining free Cloud project on 1 September, and its cheapest paid tier still sleeps when idle and takes no backups. Payload Cloud stopped accepting new deployments after the Figma acquisition. What is left is a self-hosting decision wearing a comparison table.
If you have a free project on Strapi Cloud, the date that matters is 1 September 2026. Strapi’s announcement says the free plan was removed for new signups on 1 July and that “all existing free projects will be deleted” on 1 September. That is nine days from when I checked this. Export first, decide after.
The reason Strapi gave is worth reading, because it describes the product you are being upgraded into. Most free projects were inactive, they cost infrastructure, and they ran on sleeping containers that made Strapi look slow. Fair enough. Then look at the current Cloud pricing page: the cheapest paid tier, Starter at $35 per project per month, has “Sleeps when idle” in its runtime behavior row too, and a dash under backup frequency. Always-on and weekly backups start at Pro, $90 per project per month.
Meanwhile Payload Cloud stopped taking new deployments. Payload was acquired by Figma, and the cloud pricing page now says deployment of new projects is paused, existing projects keep running, and that eventual migration will be necessary. Figma commits to the open source core, which is MIT and healthy: 44,344 stars, last push the day before I checked, v3.88.0 on 11 August 2026.
So the two options that felt like “open source with an easy managed door” both closed the door this summer. What is left is a self-hosting decision wearing a comparison table.
The four are not the same kind of product
Contentful and Sanity are content platforms. You never see a database, you never run a migration, and when their CDN has a bad night it is their incident. You rent an API and pay by usage.
Strapi and Payload are Node applications you deploy. Strapi is a standalone server with an admin panel. Payload 3 ships as a Next.js plugin, so the CMS and the front end live in one repo and deploy to one host. Both are free to run and neither is free to operate.
That split decides whether your CMS shows up as a subscription line or a fraction of somebody’s job. Everything below follows from it.
What “open source” means in each repository
All four of the self-hostable ones put a license boundary somewhere, and it is worth knowing where.
Payload is MIT across the repository, which is the simplest answer here. Sanity’s Studio is MIT as well, though the Content Lake behind it is the hosted service you are paying for, so the license on the editor is not the thing that binds you.
Strapi splits by directory. Its LICENSE says anything under an ee/ directory falls under the Enterprise Edition license and everything else is MIT Expat, and then it adds a condition I have not seen elsewhere: the MIT grant applies if you are not using ee/ code and you have no registered account on their cloud offering. Signing up for Cloud changes which license governs the copy you self-host.
The price sheet, checked 23 August 2026
Strapi Cloud is Starter $35, Pro $90, and Business $450 per project per month, with roughly 17% off annually. Note “per project,” not per seat: eight microsites are eight bills. Included API requests are 100,000, 1 million, and 10 million, and overage is $1.50 per 25,000 requests. Extra environments are $60 a month on Pro and $300 a month on Business, and Starter cannot add one at all.
Sanity is free up to 20 seats, then Growth at $15 per seat per month up to 50 seats. Viewers are free on every tier, so only people who actually edit count. The quotas are identical between Free and Growth on most rows: 1 million CDN API requests, 250,000 direct API requests, 100GB assets, 100GB bandwidth. What differs is documents, 10,000 versus 25,000, and what happens when you cross a line. On Free every overage row reads “Not included,” which means the quota blocks rather than bills. On Growth you pay $1 per 250,000 CDN requests, $1 per 25,000 API requests, $0.30 per GB of bandwidth.
Two more Sanity details that do not appear in most comparisons. The free plan’s two datasets are public only, meaning anyone with the project ID can read them, so a free project is not a place to keep unpublished content you care about. And the quota-increase add-on is $299 a month, an extra dataset is $999 a month, and dedicated support is $799 a month, which is a steep set of steps up from $15 a seat.
Contentful I could not verify. Its pricing page and its help center both sat behind a bot check on 23 August 2026 and would not return content to me. What I could confirm from search results on Contentful’s own domain is the shape of the free plan, 10 users, two roles, two locales, 100,000 API calls a month, 50GB of CDN bandwidth, and the paid overage rates of $5 per additional million API calls and $0.15 per additional GB of asset bandwidth. The $300-a-month Lite figure that circulates in comparisons is one I could not confirm, so treat it as a number to get from a salesperson rather than a fact. That is itself informative: the vendor with the reputation for being expensive is the one whose price you cannot read without talking to someone.
The same site, priced four ways
A marketing site plus a blog. Three editors, one developer, around 400 documents, about 2 million content API requests a month once preview traffic and a build that refetches everything are counted.
Sanity: three editing seats at $15 is $45, plus one million CDN requests over the included million at $1 per 250,000, so $4. Call it $49.
Strapi Cloud gets interesting. Starter at $35 includes 100,000 requests, so you owe 1.9 million in overage at $1.50 per 25,000, which is $114. Total $149. Pro at $90 includes a million, so you owe a million at the same rate, which is $60. Total $150. The tier you choose barely moves the bill at this volume, because the overage rate is flat and the meter is doing all the work. Pick Pro anyway, since that is where backups and always-on start.
Self-hosted Strapi or Payload: $60 to $120 a month in infrastructure for an app host that does not cold start, managed Postgres with a backup story you did not write, object storage and a CDN for media, and a staging environment, because you will not test a schema change in production twice.
Contentful: over the free tier’s 100,000 calls by a factor of twenty, so a paid plan, at a price I could not read.
The self-hosting bill that is not infrastructure
Infrastructure is the cheap half. The recurring cost is major-version upgrades that touch custom fields, plugin compatibility after those upgrades, migrations when the content model changes, restores you have to actually test, and someone’s phone buzzing when the admin panel returns a 500 on a Sunday.
Two to four hours a month is a fair steady state for a well-behaved deployment, more in the quarter you take a major version. At a loaded developer rate that is several hundred dollars of attention that never appears on an invoice. Self-hosting wins when you already have a platform to deploy onto and someone who does this anyway. It loses badly when a three-person team picks it because the license said free.
Leaving is the expensive part
All four will export your content. That is not where the cost is.
Contentful and Sanity both store rich text as structured JSON, Contentful’s Rich Text and Sanity’s Portable Text, rather than markdown or HTML. Moving between them means writing a transformer, not running an import. Strapi and Payload lean on markdown or a block format that flattens more easily, which makes the exit somewhat cheaper.
One to three engineer-weeks is a realistic budget to move a mid-size site between any two of these, and most of it goes to rich text and asset references rather than to the plain fields. That number is the argument for spending a week on the decision instead of an afternoon.
If low lock-in is genuinely the top priority, none of these four is the answer. Markdown files in the repository with a git-based editor on top is a real option for docs and blogs, and I would take it more often than most teams do. This site runs that way.
Picking one
Small team, no ops capacity, editors who are not developers: Sanity. The free tier is real if your content can be public, the paid tier scales in dollars per editor rather than in cliffs, and you do not own uptime.
Next.js product where developers own the content model: Payload. MIT, TypeScript config in git, one deploy. You are bringing your own hosting now, but you were going to run infrastructure anyway.
You want endpoints this week and you have somewhere to deploy: Strapi, self-hosted. Skip Cloud unless the per-project convenience is worth $90 to you, and remember that Starter’s sleeping container is the same behavior they cited as a reason to kill the free plan.
Enterprise with localization, governance, and procurement: Contentful, and start with a quote, because you will not find the number any other way.
Prices, license files, and repository state came from vendor pricing pages, the Strapi announcement post, the Payload Cloud page, and GitHub on 23 August 2026, except the Contentful figures, which are flagged above as unverified. The one item here with a clock on it is the 1 September deletion.