Headless CMS for multilingual sites and localization workflows

A self-hosted headless CMS can run several languages from one content model, but locale fallbacks, translation handoff, per-locale permissions and URL structure must be designed before content is entered. This page explains how Strapi, Payload and Directus differ for that job.

On this page

Why multilingual headless CMS work is different and which platforms fit

For a multilingual site, the locale model and the translation workflow decide the build far more than the CMS brand does. Before comparing products, map which languages each region owns, who translates (an agency, an in-house team or machine translation), who approves each locale, and which pages must exist in every language. Those answers determine how many content variants you store, how fallbacks behave and how many editor roles you need. Strapi (MIT for its Community Edition, with code under ee directories under a separate Enterprise license, current version v5.58.0), Payload (MIT, current version v3.91.0) and Directus (Monospace Sustainable Core License 1.0, current version 12.5.0) can all model locales, so the decision rests on the workflow you run around them.

The platforms differ in architecture and hosting more than in basic localization features. Strapi 5 runs on PostgreSQL 14 or later, MySQL 8.0 or later, MariaDB 10.3 or later and SQLite 3, and it does not support MongoDB. Payload is a Next.js framework that installs into an existing /app folder, so your front end and CMS share one codebase and can deploy to Vercel, Cloudflare Workers or your own servers. Payload supports MongoDB, PostgreSQL and SQLite. Directus connects to an existing SQL database through its DB_CLIENT setting and offers Studio for non-technical translators and editors, which suits organizations whose localization team works outside engineering. Confirm which database your current data sits in, because that choice narrows the options before any feature comparison.

Before you select a platform, confirm the licensing terms that apply to your use. The Directus license restricts only competing use against Monospace's paid offerings, but you should have counsel confirm how it reads for your intended deployment and any contractor work. For Strapi, confirm which features you need in the Enterprise edition, since SSO and audit logs for per-locale sign-off sit in paid tiers. Ask your implementation partner to document the database, the locale model and the editor roles in a written scope, so each platform is judged against the same requirements.

Which requirements shape a multilingual build and what each means

This table lists the requirements that shape a multilingual headless CMS build and what each one means for the content model and the front end. Read each row as a question to answer in discovery, then check the consequence in the right-hand column before you choose a platform. The main takeaway is that locale, fallback and URL decisions made early are costly to change once content is migrated.

RequirementWhat it asks forWhat it means for the content model and front end
Locale coverageWhich languages, regional variants and right-to-left scripts must be published, and which pages must exist in eachDefine locales once in the CMS and make every localized field and entry reference them. Adding a locale later means backfilling entries, so confirm the full list before modeling
Fallback chainsWhat a visitor sees when a translation is missing, such as a regional variant falling back to its base languageFallback is a front-end or API rule, not just an editor setting. Confirm how each platform returns untranslated fields and test a partially translated page before launch
Translation handoffWhether translators or machine translation work inside the CMS or in an external translation management systemDecide which fields are translatable and which are shared, such as product codes or media. Exported and imported content must keep entry IDs and locale codes intact to avoid duplicates
Per-locale publishing rightsWhich editors or agencies may create, review or publish in each languageRole permissions must scope to locale, not only to content type. Confirm that each platform can limit editors to specific locales and that the paid edition needed for review workflows is priced into the plan
URL and hreflang structureLocalized paths, such as language prefixes or country folders, and the alternate-language tags that connect themThe content model should store a slug per locale and generate the path and alternate links in the front end. Map each URL pattern before migration so redirects and search equivalents are not lost
Accessibility of each language front endFor US state and local government, WCAG 2.1 Level AA under the ADA Title II rule, with compliance dates of April 26, 2027 for entities with 50,000 or more people and April 26, 2028 for smaller entities and special districtsThe CMS does not make a page accessible on its own. Test each language front end, including translated alt text, form labels, language attributes on the HTML element and right-to-left layouts, against WCAG 2.1 Level AA

How Strapi, Payload and Directus handle locales differently

Strapi is the most established of the three for teams that want a plugin-driven model and a conventional admin panel. Its Community Edition is MIT licensed, while code under ee directories falls under a separate Enterprise license. The current release, v5.58.0, was published on October 14, 2026, and Strapi 5 minor releases ship roughly weekly, so a multilingual team should pin a version and test upgrades on a copy of its content.

  • License: MIT Expat for code outside the ee directories, with the Enterprise Edition under a separate Strapi license.
  • Database support: PostgreSQL 14 or later, MySQL 8.0 or later, MariaDB 10.3 or later and SQLite 3. MongoDB and other NoSQL databases are not supported.
  • Locale setup: Locale variants are managed per content type in the admin panel. Confirm how your pinned version handles locale fields, fallback behavior and translation status before you model content.
  • Admin SSO: SSO is an add-on for the Growth plan and included in Enterprise. It covers administrator login only, while end-user login runs through the Users and Permissions plugin.
  • Enterprise gating: Audit logs and review workflows are Enterprise features, while content history and releases start at Growth. Compare the Strapi self-hosted pricing against the seats your translators and reviewers need.

Confirm which edition provides the approval trail your localization process requires before you choose seats or plans.

Which platform fits which localization workflow

The right CMS depends less on feature lists than on who translates, where the front end lives and how content is approved. Each card below names one workflow, the platform that tends to fit it and the points to confirm before committing.

Strapi with an agency translation pipeline

Strapi's internationalization model stores each locale as a variant of the same entry, which suits an agency that receives exported content, returns translations and expects a stable structure. Check that your agency can work with the Strapi API or export format you choose, and confirm who maintains the translation connector. Plan for locale-specific review before publishing, since the Community Edition does not include review workflows or audit logs.

Payload with a Next.js front end

Payload installs into a Next.js app and generates TypeScript types from its code-defined collections and fields, so locale keys can flow into front-end types and catch missing translations at build time. This fits teams whose developers own both the CMS schema and the site. Confirm that your database choice (MongoDB, PostgreSQL or SQLite) supports the localized query patterns you need, and decide early how fallback locales are handled in code.

Directus with translators working in Studio

Directus generates REST and GraphQL APIs from the database schema and offers Studio for non-technical teammates, so in-house translators and content editors can work in the interface without writing code. Role-based permissions can limit each translator to specific locales. Confirm that your translators can work within role permissions in Studio, and check the license terms with counsel if you plan to offer the platform as a service to others.

Machine translation first with human review

When most copy is drafted by machine translation and then reviewed, the CMS needs to record which strings are machine-generated, which were edited by a person and who approved each locale. The translation engine and its data handling are usually outside the CMS, so the integration is the main risk. Confirm where source text is sent, whether the vendor retains it, and how status flags are stored in each locale variant of the content model.

When paid Strapi plans change the decision

Strapi's Community Edition is MIT licensed, but audit logs and review workflows are Enterprise features, and SSO for admin login is an add-on on Growth. If your localization process needs approval trails per locale or admin sign-on through your identity provider, the paid edition may set the total cost. Confirm which features your sign-off process requires and whether code under the ee directories will be part of your deployment.

How a multilingual CMS rollout moves from locale model to launch

The sequence turns an informal list of languages and markets into a locale-aware content model, scoped editor permissions, connected translation workflows, and URL and SEO structures that are tested in every language before cutover. Each phase closes with a named artifact that the next phase depends on.

  1. Inventory locales and markets

    The team lists every language, market and country variant the site must serve, along with the owner of each market, the legal or regional content requirements, and which pages are shared across locales. DeployOpen works through this with your content, legal and regional leads. The step is complete when you have a signed locale register that states each locale code, its fallback language, its owner and its publishing scope.

  2. Design the locale-aware content model

    Engineers decide which fields are localized, which are shared (such as images, product identifiers and layout settings), and how each CMS handles locales natively. Strapi 5, Payload and Directus each expose locale handling differently, so the choice is confirmed against the chosen version and database. The output is a content model document with field-level locale flags and a written fallback rule for every localized field, reviewed by editors before any build starts.

  3. Define roles and per-locale permissions

    Editors, translators and reviewers are mapped to the locales they can create, edit and publish, and the rules are written as role-based access controls in the CMS. Where the organization needs admin sign-in through its identity provider, the team confirms which features sit in a paid edition, since SSO and audit logs are not identical across editions. The output is a permission matrix tested with one test account per role and locale, showing that a regional editor cannot publish outside their market.

  4. Connect translation handoff workflows

    The team builds the path that moves source content to translators, whether an agency, an internal team or a machine translation service, and returns the result as a draft in the correct locale. The integration covers status tracking, translation memory or glossary reuse where the vendor supports it, and a human review stage before publication. The output is a tested round trip for one sample entry per locale, with the translation vendor's data handling terms confirmed in writing.

  5. Map URLs, SEO and hreflang

    Developers align the URL pattern for each locale with the content model, define slugs that can be translated without breaking links, and generate alternate language tags so search engines can match equivalent pages. Redirects and canonical rules are mapped for any existing sites. The output is a URL map covering every page type and locale, with hreflang output checked against a sample of pages in each language before the front end is considered complete.

  6. Test accessibility in each language front end

    Each locale's front end is tested for keyboard navigation, screen reader output, color contrast, language attributes and right-to-left layout where relevant, against WCAG 2.1 Level AA. Testing includes text expansion in longer languages, which can break navigation and form labels. The output is a defect log per locale, with fixes retested, and a list of any issues that the organization's accessibility owner must accept or resolve before launch.

  7. Cut over and monitor each locale

    Content is migrated or entered into production, redirects go live, and a launch checklist confirms that each locale resolves, falls back as designed and publishes under the right permissions. Editors work from a documented runbook for publishing and rollback. The step closes when every locale has passed the checklist and the team has a named owner for ongoing content, translation and locale-specific issues.

How URL and SEO structure follow the content model

Locale codes, per-language slugs and canonical relationships belong in the content model, not in the front-end templates. If a template decides that the German page lives under /de/ or that a product slug is generated from the English title, every new locale becomes a code change and editors lose control of the address their audience sees. In Strapi, Payload or Directus, model a locale field on each translatable entry, a slug field that is unique per locale, and a relation that links each translation to its sibling entries. Strapi and Payload both expose their locale handling through the content model, so the decision is made once in the schema. Confirm with your team which entries share one canonical identity across languages and which are independent pages that only happen to be related, because the answer determines what the relation field means.

Fallback content deserves the same deliberate design. When a French editor has not yet translated a page, the site may display the English text at a French URL, return a 404, or hide the page entirely, and each choice sends different signals to search engines and to readers. Decide per content type whether fallback is allowed, whether the page should be marked as a translation of another, and whether untranslated pages should be excluded from sitemaps until they are ready. Ask your front-end framework team to confirm how it reads locale and fallback values at build time or request time, how it generates hreflang annotations and sitemaps from the stored relations, and whether a page with fallback text can be marked noindex without custom code. Those answers, not the CMS alone, determine how indexing behaves, so test a staging build with a partially translated entry before launch.

What evidence auditors and accessibility reviewers ask for

What accessibility test records do reviewers expect for a multilingual headless CMS site?

Reviewers expect dated test records showing that each published locale's front end was checked against WCAG 2.1 Level AA, the standard referenced by the ADA Title II web rule for state and local government. The CMS itself produces little of this evidence. The front end that renders localized content does, so the records should cover each language version, including right-to-left layouts, translated form labels and language attributes. The DOJ rule sets compliance dates of April 26, 2027 for entities with 50,000 or more people and April 26, 2028 for smaller entities and special districts. Ask your front-end team and any testing provider to confirm the method, sample pages per locale and retest cadence, and read the ADA web rule before scoping.

How do I show who can edit and publish each locale?

Export the role and permission configuration for every locale, showing which roles can create, edit, translate and publish content in each language. In Strapi, Payload and Directus this is set through roles, permissions and field-level or document-level access rules, and the configuration should be stored as code or exported on a schedule so changes can be compared over time. Confirm with each vendor how locale-scoped permissions are implemented in the version you deploy, because the mechanism differs between products and between major releases. Auditors will also check that administrator accounts are tied to your identity provider where SSO is in use.

Which change and approval history needs a paid Strapi edition?

If auditors require a record of who changed or approved localized content, the evidence depends on the edition. In Strapi's self-hosted plans, audit logs and review workflows are Enterprise features, while content history and releases start at the Growth plan, and SSO is an add-on for Growth and included in Enterprise. Confirm current plan contents on the Strapi self-hosted pricing page before committing. Payload and Directus need their own check for equivalent logging, since audit capability depends on configuration and any built-in or extension features, so verify those against your retention requirement.

What backup records should exist before a CMS version upgrade?

Keep a dated database backup, a copy of the media store, and a record of the configuration and content model in place before any upgrade. For Strapi 4 to 5 moves, the migration documentation says to back up the database first because downgrading is not supported, and the upgrade runs codemods and data migration scripts on first start. Record the restore test you performed, not only the backup job. Your operations team should retain the backup, the restore log, and the sign-off showing which locales were verified after the upgrade.

Which license records do auditors need for each CMS component?

Maintain a software bill of materials that lists each CMS, plugin, translation connector and front-end framework with its license and version. For Strapi, the Community Edition code outside ee directories is MIT, while code in ee directories falls under the separate Enterprise license, so both must be recorded if you use paid features. Payload is MIT licensed. Directus is under the Monospace Sustainable Core License 1.0, which permits internal use and professional services but restricts competing use, so legal should review it against your intended use. Verify each license against the repository file on the date of deployment.

Who produces the translation handoff evidence that auditors ask about?

Auditors usually ask who translated or approved each locale, when the translation was delivered, and whether machine-translated text was reviewed before publishing. Evidence comes from the translation workflow, the agency or machine translation provider's job records, and the CMS status history for each locale entry. Ask your translation partner to confirm how they return files, how job IDs map to CMS entries, and how long records are retained. Where a locale is published without human review, document that decision and who accepted the risk.

Can DeployOpen prepare the evidence pack for an assessment?

Yes, DeployOpen can plan and document the controls, configuration exports, backup procedures and test records that an assessment will ask for, as part of compliance readiness work within a written scope. DeployOpen does not issue audit reports, attestations or certifications. Independent auditors and accessibility certification bodies make those determinations. Confirm with your counsel which assessor will review the evidence and what format they require before work starts.

What to ask an implementation partner before signing

Start with the locale model, because every later decision depends on it. Ask the partner to show, before any content entry, how locales are represented in the content model: whether each localized field uses the built-in localization feature of Strapi, Payload or Directus, or whether separate locale entries are linked by a shared key. Ask which locale codes are fixed, who can add a locale later, and how a new language is rolled out to existing entries without breaking URLs. Ask how the model handles right-to-left languages and whether fields such as slugs, metadata and alt text are localized separately. A partner who cannot explain these choices in writing before build has not designed the model yet.

Ask how fallbacks are tested rather than only configured. A fallback chain, such as a regional variant falling back to its parent language and then to the default, should be exercised with a test matrix that covers missing translations, empty fields and unpublished locales. Ask for the test cases and who signs them off. Next, ask how translation vendors and machine translation services are connected. Good answers name the exported format, the import path, the service account used, and whether vendors can reach only draft entries in their assigned locales. Ask who holds the API keys, where they are stored, and how access is revoked when a vendor contract ends.

Ask how per-locale rights are enforced in the platform itself. The partner should show which roles restrict editing and publishing by locale, and whether those rules are enforced at the API layer as well as in the admin panel. Ask how the partner verified this with a non-administrator account. Then ask how major versions are handled. For Strapi, confirm whether the partner has a tested path from v4 to v5, given that v4 reached end of life on April 30, 2026 and that the migration requires a database backup because downgrading is not supported. Ask for their plan for future major versions across all three candidate platforms. Finally, ask which paid edition features the design needs, such as Strapi SSO or review workflows, and get the price of each in the written quote, using the vendor pricing pages for current figures.

Questions buyers ask about multilingual headless CMS projects

What drives the cost of a multilingual headless CMS project?

Cost is driven mainly by the number of locales, how much content differs per market, and how much translation workflow you need built around the CMS. Each locale adds field values to translate, review, and keep in sync, and each market that needs its own pages adds template and QA work. Expect one-time costs for content modeling, locale setup, translation connector work, and front-end localization, plus recurring costs for hosting, the translation vendor, and maintenance. For Strapi, self-hosted Community Edition is free to license, but paid self-hosted plans, listed in the Strapi self-hosted pricing page, add SSO and workflow features. Ask any quote to split these components.

How long does a multilingual CMS build take and what sets the timeline?

The timeline depends on the content model, the number of languages and markets, the state of existing content, and how many systems the workflow must connect to. Work that often takes longest is cleaning up legacy content, agreeing fallback and URL rules with SEO and legal teams, and testing translated pages across real layouts. Migrating from an older CMS adds mapping and redirect work. DeployOpen scopes these items in writing before work starts, so ask for a phased plan that separates the core locale model from market-by-market rollout.

What does our team need to provide before a localization project starts?

You need a confirmed list of languages and the markets each one serves, with a named owner for each locale. You also need the translation arrangements: whether an agency, an in-house team, or machine translation with human review will handle each language, and the contract or service terms that govern file formats, turnaround, and glossaries. Add your style guides, terminology lists, brand rules for untranslated terms, and the rules for which content is shared globally and which is market-specific. Missing decisions here are the most common source of rework.

Can our internal team build and run a multilingual headless CMS without a partner?

A capable internal team can build a multilingual CMS, but the work usually needs skills in content modeling, Node.js or Next.js for the front end, database operations, and identity integration. The effort that is easiest to underestimate is ongoing: upgrades, translation connector maintenance, and editor training across several markets. Strapi 5 requires supported Node.js versions and PostgreSQL 14 or later, MySQL 8.0 or later, MariaDB 10.3 or later, or SQLite 3, so your platform team should confirm it can run that stack. A partner is useful when you want the work fixed in scope and handed over with documentation.

Which headless CMS should we choose for a multilingual site?

The right choice depends on your front-end stack, your editors, and your licensing needs. Strapi suits teams that want a mature admin panel and a large plugin base, with the caveat that SSO and audit logs sit in paid self-hosted tiers. Payload suits teams already building in Next.js who want TypeScript types generated from code-defined collections and built-in localization. Directus suits teams that have an existing SQL database and want the schema exposed through REST and GraphQL. Check each product's license terms against your use, since Directus uses the Monospace Sustainable Core License, and confirm localization features against your own content model in a proof of concept.

Does machine translation change the localization workflow?

Yes. Machine translation changes the workflow from a translation handoff into a review process, so the CMS needs to track which fields were machine-translated, who reviewed them, and which locales are still pending. Your editors need a clear state for draft translations, and publishing rules should block unreviewed machine output in regulated or high-visibility content if your policy requires it. Ask any integration partner how the chosen platform stores translation status per locale and whether the translation provider's API can write back into the content model without overwriting human edits.

How DeployOpen scopes and supports a multilingual CMS build

DeployOpen plans, implements, customizes, integrates, hardens, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For a multilingual headless CMS, that means agreeing the locale model, fallback rules, translation handoff and publishing permissions in writing before the build starts, then delivering them as tested, documented configuration.

How we scope

  • Inventory every locale, market and brand site, with the owner who approves each language before publishing.
  • Map the locale model in your chosen CMS, including default locales, fallback chains and which fields vary by language.
  • Agree in writing how translation handoff works, whether to agencies, machine translation or a mix of both.
  • Define per-locale editor roles and the URL and SEO structure each language will use, then fix the scope and timeline in writing.

How we build

  • Configure locales, fallbacks and localized fields in Strapi, Payload or Directus against the agreed content model.
  • Build the translation export and import path so translated content returns to the correct locale and version.
  • Test per-locale permissions, so an editor for one language cannot publish or overwrite another.
  • Verify hreflang, localized slugs and redirects in the front end that the CMS API feeds, with evidence captured for review.

How we hand over

  • Document the locale model, fallback rules, role matrix and translation workflow in a handover pack your team can maintain.
  • Walk editors and translation coordinators through creating, translating and publishing a page in each language.
  • Provide runbooks for adding a new locale, including content model changes, permissions and URL mapping.
  • Deliver configuration in your own repositories and environments, so your team holds the code and the operating knowledge.

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer after handover, scoped separately from the build.
  • Plan upgrades of the CMS with regression checks on locale routing, fallbacks and per-locale permissions.
  • Confirm with your team which paid-edition features, such as SSO or review workflows, your localization process requires before scoping.
  • Ask any prospective partner, including DeployOpen, to show how it scopes changes to locales and what the retainer covers.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.