Built for content that exists in more than one language
Every headless CMS has content types, an API and a media library. What decides whether this one is worth switching to is what it does with languages.
The free plan includes 3 content languages, the full editorial workflow, and no expiry.
Strict delivery, by default
Ask for Georgian and you get what is published in Georgian — not the English with a Georgian label on it. Fallback is opt-in per request, and anything substituted is marked as substituted so a consumer can tell.
Each language publishes on its own
English can be live while German is in review and Georgian has not been started. Status, workflow state, slug and translation state belong to the language version, not to the document.
A translation knows when it has gone stale
Editing the source marks every finished translation of it out of date, in red, on the board and in the editor. A stale translation sitting on a live site looking current is the failure this exists to prevent.
Priced per organisation, not per site
One subscription covers every site you run. Members can be confined to the sites they work on, so a client sees their own and nothing else.
And the rest of what you would expect
Editorial workflow
Draft, review, approved, published, archived — with role gates on each transition, a required reason on a rejection, and scheduled publishing from Starter.
A real editor
Markdown as you type, a slash menu, tables, footnotes, and paste that becomes real blocks rather than literal text. Autosave with a conflict dialog when two people collide.
Media that does not move
Keys are immutable, so a replacement is a new asset and nothing you have already published breaks. Variants and blurhashes are generated for you; alt text and captions are per language.
A delivery API, and a Strapi shim
A clean REST API for new work, and a compatibility layer that speaks Strapi's query shape so an existing site can move without being rewritten first.
Machine translation, metered honestly
Two qualities, priced per character, always landing as a draft nobody has read. It is the one feature that sends content outside the EU, it is named in the subprocessor list, and it can be switched off per site.
Webhooks that reach your build
Publishing fires a signed webhook — a plain POST, a Next.js revalidation, a Cloudflare purge, or a GitHub dispatch — with a delivery log and a replay button when one fails.
What it does not do
- There is no visual page builder. Content is structured and your site decides how it looks.
- No live co-editing. Two people on one document see each other and get a conflict dialog rather than merged cursors.
- No storefront, no carts, no payments for your own customers.