Skip to content
Sonenta

The text of your app, managed by your coding agent.

Translation, per-screen variants, regional languages, accessibility, source-string health: your agent does the work over MCP, with a glossary and a context that persist from one pass to the next. The CDN delivers the result to your web and mobile apps, with no new version.

Free: 1 project, 500 keys, 3 languages, no credit card. Exports to i18next JSON, XLIFF and CSV.

The proof

What the agent reads, what it writes, what ships.


          you
          › 
          Translate the untranslated keys in the checkout namespace into es and ja.
        
          agent
          › 
          list_untranslated_keys  namespace=checkout  language_code=es
        
          
          › 
          list_untranslated_keys  namespace=checkout  language_code=ja
        
          
          › 
          glossary_list · project_context_get
        
          
          › 
          propose_translations_bulk  (24)
        
          
          › 
          publish_cdn
        
          sonenta
          › 
          release ready · 2 bundles rebuilt · es/checkout.json, ja/checkout.json
        

Tool names are those of the @sonenta/mcp server (v0.57.0), which exposes 98 of them. The counts above are an example, not a measurement.

Who it is for

You are building for several markets.

You ship a mobile app, and every text fix goes through the stores.

React Native, Expo.

See the use case→

What decides it

Three things a locales/ folder does not do.

Your agent does the work, and it remembers.

  • A rule-based glossary: translation, do_not_translate, forbidden.
  • Project context in sections, a description per key, versioned with diff and revert.
  • It only handles untranslated keys (list_untranslated_keys) and runs on your machine.
Glossary and context→

Publishing a translation redeploys nothing.

  • A release builds one JSON per language and namespace, served from the CDN.
  • Your web app loads it at runtime. So does your React Native app, without going back through the stores.
  • If the CDN is unreachable, the API serves the same bundles as a fallback.
CDN and releases→

A content model that holds up internationally.

  • Regional variants as an overlay, with BCP-47 fallback: fr-CA to fr, then to the source.
  • Per-screen variants: desktop, mobile, tablet, or your own surfaces.
  • Typed keys, accessibility surfaces, exports to i18next JSON, XLIFF and CSV. You can leave whenever you want.
Regional variants→

How it works

Four steps.

  1. 01

    Install the SDK.

    npm i @sonenta/react-i18next, or the package for your framework. Keys called without a translation show up in the dashboard during development.

  2. 02

    Wire up the agent.

    sonenta init writes the configuration and a block into CLAUDE.md or AGENTS.md. The MCP server is declared in five lines of JSON in Claude Code, Cursor or Claude Desktop.

  3. 03

    Let the agent translate.

    It reads the glossary and the context, handles only untranslated keys, and proposes. You review in the dashboard if you turn on approval before publishing, which is enabled per project.

  4. 04

    Publish.

    publish_cdn from the agent, or sonenta releases from the CLI. Your apps load the new bundle with no redeploy.

See the full page→

What it replaces

Three ways to handle your text.

A locales/ folder A classic platform Sonenta
Where the strings live In the repository At the vendor In your Sonenta project, exportable
Who translates You, by hand Translators, out of band Your agent, on your machine
How it reaches production A deployment An export, then a deployment A CDN release
What persists from one pass to the next Nothing A translation memory Glossary, context, key descriptions, versioned
How you get out It is already yours Depends on the contract Export to i18next JSON, XLIFF or CSV, at any time

Your stack

Fits what you already use.

Fits your stack
  • React
  • Astro beta
  • Next.js
  • Vue
  • Svelte
  • Node.js Coming soon
and every common file format.

Every name links to its documentation page.

The dashboard

Everything the agent writes is visible, attributed and reversible.

  • A review queue, by language and by status.
  • Glossary and context versioned, with diff and revert. Every version is signed by a human or by an agent.
  • A task list shared between humans and agents. Every task carries its command or its prompt.

The dashboard is itself translated by Sonenta, and loads its bundles from the public CDN.

Pricing

Honest, predictable, no per-word billing.

Free stays free. Paid plans start at $9/month. Every language, always included.

Free

$0

One project to try it out, with MCP in read-only.

500
Included keys
5 GB
CDN bandwidth

Hobby

$9 / month

One product, five languages, and the agent writes.

5 000
Included keys
50 GB
CDN bandwidth

Pro

$29 / month

Several apps, every language, five members.

50 000
Included keys
250 GB
CDN bandwidth

Questions

What people ask us.

Do we have to leave i18next? +

No. @sonenta/react-i18next keeps the useTranslation API, and the i18next JSON import takes your existing files.

What happens if the CDN is unreachable? +

The API serves the same bundles as a fallback. sonenta snapshot freezes a set of bundles at build time, so you can start with no network.

Does my agent need credits? +

Not for the everyday flow: it runs on your machine. Credits pay for translation done by Sonenta, on demand, and for server-side accessibility generation.

Where is my data, and how do I get it out? +

In your Sonenta project. Export to i18next JSON, XLIFF or CSV at any time, from the CLI, from MCP or from the dashboard.

Does a human approve before publishing? +

If you turn it on, per project. Otherwise what is translated ships with the next release.

Is the Free plan enough to try it? +

1 project, 500 keys, 3 languages, and MCP in read-only. MCP writes start at Hobby.

Down to the last word.

Ready to adapt your product to every user?

Start free in minutes. No credit card, no commitment, and your exports always open.