Skip to main content
On this page

The best headless CMS for multilingual sites (what to check)

Multilingual 6 min read

TL;DR

Before picking a headless CMS for a multilingual site, check three things that hide in the fine print: locale caps, per-locale or add-on fees, and the translation workflow. These are the costs that turn "multilingual" into a surprise bill.

The best CMS for a multilingual site is the one that treats localization as a core feature, not a tier-gated cap or a paid add-on. In practice, that means checking four things before you sign anything: whether locale count is capped by plan, whether you pay per locale on top of your base price, whether the translation workflow (fallback content, partial translations, per-locale publishing) is built in, and whether delivery avoids a network round-trip per language switch. Most vendors fail at least one of these, usually in a pricing-page footnote rather than the feature list.

Below is what to check, how four vendors handle it as of 2026, and where Adapto lands.

Why multilingual is often an afterthought or an add-on

Most headless CMSs were built single-locale-first and had localization retrofitted. You can tell by where the feature sits in the pricing structure: locked behind a higher tier, capped by a small number, or sold separately from the core product. Cosmic prices localization as a $99/mo add-on, charged on top of whatever plan you're already paying for, alongside revision history, webhooks, and automatic backups as three more $99/mo add-ons (cosmicjs.com/pricing). Hygraph doesn't charge extra for locales, but it caps them: 2 on the free Hobby plan, 3 on the $199–299/mo Growth plan, and up to 80 only on Enterprise, which means "unlimited" multilingual content is a contact-sales conversation (hygraph.com/pricing).

Neither vendor is lying about supporting multilingual content; they do. But "supports localization" and "localization is included at the tier you're paying for" are different claims, and the pricing page usually only answers the first one.

What to check before you pick a CMS for multilingual content

1. Locale caps

Ask for the exact number, per tier, not "unlimited locales" as a marketing line. If the answer is a range that jumps with plan tier (2 → 3 → 80, in Hygraph's case), model your actual language count against it now, before content is modeled and migrating locales becomes a project of its own.

2. Per-locale or add-on pricing

Two shapes of cost show up here. Storyblok doesn't gate locale count by tier, but it bills $20/mo per additional locale beyond your plan's included minimum (storyblok.com/pricing, April 2025 repricing), so a 6-language site costs more than a 2-language one on the same base plan. Cosmic works differently: localization itself is a flat $99/mo feature toggle, independent of how many languages you run. Know which shape of cost you're signing up for.

3. Translation workflow

Does the CMS give editors a side-by-side locale view, a "translate this field" action, and a way to see which fields are still untranslated, or is that a custom build on top of the API? A locale cap you can work around by upgrading a plan. A missing workflow means every translator-handoff is a manual, error-prone process regardless of tier.

4. Fallback behavior

When a field isn't translated yet in a given locale, what renders: a blank field, the default-locale value, or a broken page? Fallback-to-default-locale should be the default behavior, configurable per content type, not something you have to build with conditional logic in the frontend.

5. Delivery

Does fetching a page in a given locale cost one API call, or does the frontend have to fetch the default locale first and then resolve translations in a second round trip? The second pattern doubles latency on every localized page load and is a common source of the "headless i18n is slow" complaints you'll find in developer forums.

How the majors handle it (sourced, 2026)

Vendor Locale cap Per-locale / add-on cost Notes
Hygraph 2 (free) / 3 (Growth, $199–299/mo) / up to 80 (Enterprise) No per-locale fee, but higher locale counts require the highest tier GraphQL-only API; locale limits sit on top of that lock-in
Cosmic Not tier-capped $99/mo add-on for localization (or $199/mo bundled with Revision History, Webhooks, Automatic Backups) You pay for localization as a feature, separate from your base plan and from locale count
Storyblok Not tier-capped $20/mo per additional locale beyond your plan's included minimum Compounds with Storyblok's own $99→$349 tier cliff if you also cross an asset threshold
Contentful Locale allowances are set per Space/Environment rather than published as a flat per-tier number Not broken out as a standalone line item in the public pricing table Multi-locale delivery works via the API's locale parameter, but confirm current per-Space allowances directly before committing
Adapto No locale cap; unlimited translations, every tier No localization add-on fee Field-level localization; translations are authored together, all at once, via the adapto CLI (create-translation), linked by translation_of_id, and read per locale with ?language=<code>

Across the first three rows, multilingual support exists everywhere, but the cost shape differs: capped by tier (Hygraph), sold as an add-on (Cosmic), or metered per locale (Storyblok). Every one of them charges you extra as you add languages.

Migrating an existing multilingual site

If you're moving a multilingual site to a new CMS rather than starting fresh, the locale checklist above still applies, plus three migration-specific items: confirm the new CMS preserves your existing locale codes (or map them explicitly, since en-US vs en isn't interchangeable in every API), audit which content is translated versus which falls back to a default locale today (don't assume 100% coverage just because a language exists in your current CMS), and plan redirects per locale, not just per URL. A locale-aware CMS with weak redirect handling can 404 an entire language's URL tree on cutover. Get the content model right before you migrate a single word: how to model multilingual content without duplicating types covers the modeling pattern that avoids the "one content type per language" trap most teams hit first.

Adapto's approach

Adapto CMS treats localization as a core capability included with the product rather than a paid add-on or a tier-gated cap, the same posture as its stance on feature-gating generally (see our Contentful teardown, Cosmic's add-on pricing, and our Storyblok teardown for how those three price and gate features beyond locales). Content is modeled once, with per-locale entries rather than duplicated content types, so adding a language means adding a locale rather than rebuilding the schema. Localization is field-level: a piece and its translations are authored together, all at once, via the adapto CLI's create-translation command, which links each translation back to its source through translation_of_id; the read API then serves the right locale with a ?language=<code> query parameter. Translations are unlimited on every tier, from Free Evaluation through Professional, with no per-locale fee and no locale cap, the same flat-rate posture as the rest of Adapto's pricing.

If multilingual is a hard requirement, check Adapto's flat pricing against the checklist above rather than the feature-list summary. The cap, the add-on fee, or the workflow gap is usually one click past the headline price.

FAQ

Which headless CMS is best for multilingual sites?

The one that doesn't cap or upcharge for locales as you scale. Check three things regardless of vendor: whether locale count is capped by tier (Hygraph limits its free plan to 2 locales and its $199–299/mo Growth tier to 3), whether localization is priced as a separate add-on (Cosmic charges $99/mo for it) rather than bundled with core delivery, and whether the translation workflow (fallback content, partial-translation handling, per-locale publishing) is built in or something you have to script yourself. A CMS can be a fine choice for single-locale content and still be a poor multilingual one.

Do CMSs charge extra per locale?

Often yes, though the cost is structured differently by vendor. Hygraph gates locale count by plan tier rather than billing per locale. Cosmic prices localization itself as a $99/mo add-on no matter how many locales you add. Storyblok charges $20/mo per additional locale beyond your plan's included minimum. None of this shows up until you're deep in the pricing page's fine print, which is why it's worth checking before you model your content rather than after.