APIs and packages are built and tested. The WordPress plugin is in early access; the npm packages are not published yet.

Build on a translation system you can inspect

The system is designed to be understood: translations are static JSON files with a signed manifest, the loader has a small API and the control plane has a documented HTTP API.

Create an account See pricing

Who it is for

  • Developers who want translations as build artifacts, not as a runtime dependency.
  • Teams building a headless or single-page site.
  • Engineers who need to export their data and verify what is served.

Honest limits

  • Not yet in the WordPress.org directory, the Shopify App Store or npm. The WordPress plugin is a zip in the dashboard; the packages stay private until their npm release.
  • The API and bundle format are still changing while the product is built; do not treat them as stable.
  • The loader needs a modern browser (Promise, fetch, MutationObserver and TextEncoder) and does nothing without them.
  • Frameworks that re-render text can overwrite a translation; mark such nodes translate="no" or use the build-time route.

How it works in 3 steps

  1. Create a site and submit text

    The control plane API (and a zero-dependency JavaScript client) creates sites, submits strings, starts translation jobs and publishes. Secret API keys are kept server-side and shown only once.

  2. Get signed bundles

    A publish produces a versioned bundle: a manifest signed with Ed25519 and one JSON file per language with checksums. You can export all translations as JSON, XLIFF, PO or CSV.

  3. Consume them

    Use the loader tag with its data attributes, window.ResilientLang (setLanguage, getLanguages, events), or the build-time packages for Next.js, Nuxt, Astro and plain HTML.

Questions

Can I verify what the loader accepts?

Yes. It requires a valid Ed25519 signature on the manifest, checks every language file's checksum, and ignores older versions. Its tests include shared test vectors for the signature and text-key rules.

How do I add the loader to a single-page app?

Add the tag once in the HTML shell. The loader watches DOM changes, so client-rendered text is translated. For SEO, prefer the build-time route.

Is there an SDK?

A zero-dependency JavaScript client for the control plane exists in the repository; it is not on npm yet.

Can I take my data with me?

Yes. The API design includes a full export in several formats.