No price appears anywhere in this article, and no platform is named.
That is not caution, it is the point. A page about pricing that quotes a number is wrong within months, and by the time you read it you have no way of knowing whether it is. The numbers move; the mechanisms that produce the numbers do not. This article is about the mechanisms.
The first question is not what it costs
It is what is being counted.
Every platform in this category prices on something, and the something varies enormously. Once you know which unit a vendor meters, you can work out your own cost from your own numbers, and you can do it again next year when their prices have changed.
The units that appear:
- Users or seats. Sometimes split by role, so an editor and a viewer cost differently.
- API calls or requests. Sometimes split into read and write, sometimes into cached and uncached.
- Bandwidth or asset delivery.
- Records, entries or documents. The count of your content.
- Locales or languages. Frequently a multiplier rather than an addition, which is a trap of its own and one worth reading about before you commit to a multilingual site.
- Environments. Staging, production, and any preview environment.
- Spaces, projects or instances. Often the unit that decides which tier you are in.
- Builds or deploys, where a build platform is involved.
Find the unit first. Everything else on the page is a consequence of it, and a pricing page you have read without identifying the unit is a pricing page you have not read.
The words that hide a cliff
Certain phrasings recur across this category and each one conceals a different question.
“Starts at”. There is a floor and no ceiling described. Ask what moves it.
“Unlimited”. Almost never unlimited. Usually there is a fair-use clause, a rate limit, or a soft cap enforced by a conversation. Ask what happens at the point where it stops being unlimited.
“Included”. Included up to what? Included with what overage rate afterward?
“Contact us”. The tier that has no published price is the tier you will end up in if you grow, and its price is a negotiation rather than a number. That is worth knowing at the start rather than at renewal.
“Per month, billed annually”. A commitment presented as a monthly figure.
“Free tier”. Free tiers are real and useful for evaluation. The question is what happens the day you exceed one, and whether that day arrives as a warning, a slowdown, or a stopped site.
The three questions that actually decide the cost
Everything else is detail. These three are the ones whose answers you cannot get from the page.
1. What happens when I exceed a limit? There are three possible answers and they are wildly different: you are billed for overage, you are throttled, or you are cut off. Ask which. A pricing page that does not say is a pricing page that has left out the most operationally significant fact on it.
2. What triggers a tier change? Usually not the thing you expect. Frequently it is not volume at all, it is a feature: a second environment, a role type, an SSO requirement, a webhook, a locale. Teams routinely find they have jumped a tier not because they grew but because they needed one specific thing.
3. How much notice is given for a price change? And what has actually happened historically. A platform’s pricing history is public and it is more informative than its current page.
Send all three to the vendor in writing before you commit, and keep the reply. A vendor who answers all three clearly is telling you something about how they will behave later.
What is not on the pricing page at all
The largest costs in this decision are usually somewhere else entirely.
Whoever operates it. If the platform is self-hosted, the licence is free and the on-call rota is not. If it is managed, you are paying for someone else’s rota and that is what the price is buying. Self-hosted or cloud: who is on call at 2am works through that trade properly.
The build or hosting layer underneath. A headless CMS is one line item and the front end is another. The constraint that bites is frequently in the layer below the CMS, and no CMS pricing page carries it.
Implementation. The work to get from a signed contract to a working site, which for a headless setup is a project rather than a configuration.
The costs that only appear once you are running at scale, which is a separate subject and the one where teams get genuinely surprised.
Leaving. The cost of the next migration is a cost of this decision, and it is decided by how portable your content turns out to be. Exporting your content from a CMS is the test to run before you sign, not after.
Build your own model, once
Twenty minutes with a spreadsheet is worth more than any comparison article, including this one.
- Your real numbers, not projections: how many editors, how many entries, how many locales, how much traffic.
- The same numbers at three times the size. Not because you will get there, but because it shows you the shape of the curve, and the shape is what you are buying.
- Each candidate’s unit applied to both.
- Plus the operating cost, from the section above.
What you are looking for is not the cheapest today. It is which curve you can live with, because you are choosing a platform for years and the price you pay in year three is the one that matters.
A platform that is cheap now and steepens sharply is a platform you will be migrating away from, and this site’s migration cluster exists because that migration is more expensive than anyone expects. When not to migrate a CMS is worth reading before you make a decision whose exit cost you have not priced.
Two things that are not signals
Cheap is not a red flag. A genuinely simpler product costs less to run and can price accordingly.
Expensive is not a quality signal. Enterprise pricing frequently reflects a sales model rather than a product difference.
The signal is whether the pricing is legible: whether you can read the page, identify the unit, and calculate your own number. A pricing page you cannot model from is a decision you are not making.
The short version
- Find the metered unit first. Everything else follows from it.
- Watch for “starts at”, “unlimited”, “included”, “contact us” and free tiers. Each hides a question.
- Ask three things in writing: what happens at the limit, what triggers a tier change, how much notice for a price rise.
- The biggest costs are off the page: who operates it, the layer underneath, implementation, and leaving.
- Model your own numbers at today’s size and three times it. Buy the curve, not the price.
- No price appears in this article on purpose. Read the vendor’s own page and note the date you read it.

