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.
| Requirement | What it asks for | What it means for the content model and front end |
|---|---|---|
| Locale coverage | Which languages, regional variants and right-to-left scripts must be published, and which pages must exist in each | Define 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 chains | What a visitor sees when a translation is missing, such as a regional variant falling back to its base language | Fallback 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 handoff | Whether translators or machine translation work inside the CMS or in an external translation management system | Decide 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 rights | Which editors or agencies may create, review or publish in each language | Role 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 structure | Localized paths, such as language prefixes or country folders, and the alternate-language tags that connect them | The 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 end | For 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 districts | The 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.
Payload defines collections and fields in code, so locale settings, field types and access rules live in the same repository as the front end. It is MIT licensed, and v3.91.0 was released on October 15, 2026. A v4.0.0 beta line is also in progress, with v4.0.0-beta.2 published on October 16, 2026, so a multilingual team should decide early whether to stay on the 3.x line or move to 4.0 once it is stable.
- License: MIT, with Payload installed directly into an existing Next.js app folder.
- Localization: Localization is a built-in feature alongside versions and drafts, which lets translators work on draft variants. Confirm the locale list, fallback behavior and per-locale fields in the version you pin.
- Database support: MongoDB, PostgreSQL and SQLite. The data model and migration approach differ by database, so match the choice to your hosting and backup standards.
- Admin access: Built-in authentication manages admin and customer users inside the CMS, and the admin panel can be customized with React. Confirm how editor SSO is delivered with your identity provider, because the built-in authentication does not replace that integration.
- Field-level access: Field-level access control and document hooks can restrict who edits a translated field, such as legal or pricing text, to a specific locale team.
Ask the implementation partner how the locale configuration will be versioned and tested alongside the Next.js front end.
Directus connects to an existing SQL database and generates its APIs from the schema, so locale and translation data often sit in tables your team already runs. It is licensed under the Monospace Sustainable Core License 1.0, and v12.5.0 was released on October 7, 2026. The license permits internal use and professional services that deploy or host Directus for a licensee, except a competing use against Monospace's paid offerings.
- License: MSCL-1.0-GPL, which converts each version to GPL-3.0 four years after release. Have counsel confirm that the license fits your agency and vendor model.
- Database support: PostgreSQL, MySQL, MariaDB, Oracle Database, Microsoft SQL Server, SQLite and CockroachDB, selected through the
DB_CLIENTsetting. - Locale model: REST and GraphQL APIs are generated from the schema, and Studio gives non-technical teammates a management interface. Confirm how locale and translation fields are modeled in your version and how Studio presents them to translators.
- AI and permissions: The native MCP server and embedded AI Assistant follow the same role-based permissions as human users. This matters if machine translation tools are connected to the platform.
- Deployment and admin access: Directus can be self-hosted with Docker or run on Directus Cloud. Confirm SSO support and any paid requirements with the vendor before you design roles.
Test the locale model and SSO on a non-production instance before you commit to a deployment.
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.
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.
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.
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.
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.
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.
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.
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.

