Sign-ups are closed. Menestrel now powers the sites built by Agora Studio, a web agency based in France.

The real cost of a headless CMS across twenty brochure sites

Vendor pricing pages are written for one site. Here is the same arithmetic done for a fleet of twenty, with figures surveyed at the source, plus the three costs that never appear on any pricing page.

Every headless CMS pricing page is designed to be read by someone with one website. The tiers make sense, the free plan looks generous, and the numbers are small enough to approve without a meeting.

Then you multiply by twenty, and the picture changes completely.

This article does that arithmetic honestly, with figures surveyed directly on vendor pricing pages on 8 August 2026. Prices change; recheck before deciding. And it covers the three costs that never appear on any pricing page, which in practice matter more than the subscription.

The scenario

Twenty brochure sites for local businesses. Each has:

You bill each client somewhere between 30 € and 60 € a month of maintenance. That is the envelope everything has to fit inside.

The subscriptions, at the source

Contentful. The free tier gives 10 users, 2 locales and 10,000 records: genuinely enough for one brochure site. The next tier, Lite, is €300 a month. There is nothing in between. Twenty sites either all fit in free tiers, which means twenty separate organisations to administer, or one of them tips over and you are at €300 for that site alone.

Strapi. MIT-licensed and free to self-host. Strapi Cloud starts at $35 a month per project, Pro at $90. Twenty projects on Starter is $700 a month. Self-hosting is free of licence, which we come back to below, because that is where the interesting cost hides.

Sanity. The most generous free tier here: 20 seats, 10,000 documents, unlimited locales. Growth is $15 per seat per month. With forty editors across the fleet, that is $600 a month the moment you outgrow free, and the thing pushing you out of free is document count, not seats.

Storyblok. The free tier allows one seat, which fails immediately: your client is the second seat. Growth is $99 a month, with $15 per extra seat and $20 per extra locale. Twenty sites on Growth is $1,980 a month before locales.

Prismic. Priced per repository, paid yearly. Free gives one user, which again fails at the first client. Starter is $10 a month, Small $25. Twenty repositories on Starter is $200 a month, on Small $500.

Directus. Core is free with 3 seats, and self-hosting is free for organisations under $5M revenue and 50 employees, which covers most agencies. Team is $499 a month. Directus is a data platform rather than a brochure-site CMS, so it is in this table for completeness rather than as a like-for-like option.

The table

Vendor Entry that actually works for a client site Twenty sites
Contentful Free, then €300/mo Free tiers or €300 per tipped site
Strapi Cloud $35/mo per project $700/mo
Sanity $15/seat/mo ~$600/mo at 40 editors
Storyblok $99/mo $1,980/mo before locales
Prismic $10/mo per repo $200/mo
Menestrel 3 €/mo per site ~30 €/mo (Studio, two plans)

I have put our own number in because leaving it out would be coy. Menestrel Studio is 15 € excl. VAT a month for ten sites, so twenty sites is two Studio plans, roughly 30 € a month, with unlimited editors and unlimited locales.

The cost that is not on the pricing page: self-hosting

“Just self-host Strapi, it’s free” is the most common answer to the table above, and it is worth taking seriously rather than dismissing.

The licence is genuinely free. What is not free:

A Node process and a database per project. Twenty sites means twenty application instances and twenty databases, or one shared instance with a data model that keeps clients separated, which is its own project.

Patching. Node security releases, dependency advisories, Strapi’s own major versions with their breaking changes. On twenty instances.

Backups you have actually restored. A backup you have never restored is not a backup. Testing restores across twenty databases is a recurring afternoon.

Being on call. When an instance falls over at 6pm on a Friday, the client whose site is down does not care about your licensing model.

Put a conservative number on it: half a day a month of maintenance across the fleet, at whatever you bill yourself. For most agencies that lands somewhere between 300 € and 600 € a month of opportunity cost. Which is to say self-hosting is not cheaper than the subscriptions above, it just moves the cost from a card statement into your calendar, where it is invisible until you look for it.

The cost that is not on the pricing page: support

Every tool your clients touch produces small interruptions. A forgotten password. A HEIC photo from an iPhone that will not upload. A change that “did not save”. A page that is not live because a build failed quietly and nothing told anyone.

Forty editors, one interruption per editor per quarter, is one hundred and sixty interruptions a year, at roughly ten minutes plus a context switch each. That is several working weeks.

This is the cost that decides whether a fleet is profitable, and it appears on no comparison table. It is also the one most affected by design choices rather than features: every option you expose to a non-technical client is a question they can ask you later.

The cost that is not on the pricing page: the exit

For one site, migrating away from a CMS is an unpleasant weekend. For twenty, it is a project nobody will finance, which means when the price rises you will pay it.

That asymmetry is precisely why per-project pricing tends to increase once a vendor knows its customers are locked in. The protection is a genuine export: content in a format the next tool can read, available today, on the free tier, without asking anyone.

Ask any vendor to show you the export before you sign, and look at what actually comes out. A proprietary JSON dump is not an exit.

A worked example, with a real envelope

Numbers in a table stay abstract. Here is the same fleet as a monthly P&L.

Twenty clients at 45 € a month of maintenance is 900 € of revenue. Out of that you have to pay for hosting, the CMS, your time, and still make a margin.

Hosting twenty static sites is close to free: on Vercel’s or Netlify’s free tiers for most of them, or a few euros a month on a VPS. Call it 20 €.

Now insert each CMS option and see what is left before your own time is paid:

CMS choice Monthly cost Left of the 900 €
Storyblok Growth ×20 ~1,830 € negative
Strapi Cloud Starter ×20 ~650 € 230 €
Sanity Growth, 40 seats ~555 € 325 €
Prismic Starter ×20 ~185 € 695 €
Self-hosted Strapi 20 € + half a day a month 880 € minus your time
Menestrel Studio ×2 ~30 € 850 €

Converted at rough parity for readability; the point is the order of magnitude, not the cent.

Two things jump out. The first is that one tier of one popular tool takes the whole envelope and more. The second is that self-hosting looks best on this table precisely because the cost is your own time, which the table cannot show. If you value half a day at 300 €, self-hosted Strapi lands around 580 € left, roughly the same as Sanity, and you also carry the pager.

The trap of the generous free tier

A pattern worth naming, because it catches agencies specifically.

Several vendors have free tiers so generous that a single brochure site never leaves them: Sanity’s 20 seats, Contentful’s 10,000 records, Prismic’s unlimited documents. The obvious move is to create one free organisation per client and never pay anyone.

It works, and then it does not, for reasons that are administrative rather than technical. You now have twenty separate accounts with twenty sets of credentials, no shared view of the fleet, no single invoice, and twenty separate places to notice that something broke. When a vendor changes their free-tier limits, which they do, you find out twenty times.

More practically: most of these free tiers are per-organisation and their terms are written for one organisation per company, not one per client of an agency. Read them before building a business process on top.

Where the honest answer is “not us”

Doing this arithmetic fairly means saying where the expensive options are worth their price.

One flagship site with a marketing team. $99 a month for Storyblok’s visual editor, on a site that generates real revenue, is obviously worth it. The per-site maths only bites across a fleet.

Content that is genuinely structured. If your model needs references, arrays of blocks and Portable Text, Sanity is a better product than we are and the seat price buys something real.

A back end, not a site. If there is business logic, custom endpoints and relational data, Strapi or Directus is the right tool and the operational cost is the price of having a back end at all.

A hard self-hosting requirement. If content must live on the client’s infrastructure, we have no answer: there is no self-hosted Menestrel.

The summary

For a fleet of brochure sites, the subscription is usually the smallest of the three costs. The self-hosting time and the support load dominate, and both are invisible when you are comparing pricing pages.

Before choosing, do three things: multiply the entry tier by your actual site count, put a number on the maintenance hours you are volunteering, and ask to see the export.

The per-vendor detail, including what each one does better than us, is in the comparisons, and our own pricing with the awkward questions answered is on the pricing page.

Back to the blog