Design described from the code. Not yet proven in production.

Pages stay translated when our servers are down

Most translation services call their servers on every page view. If those servers fail, visitors see broken or untranslated pages. We split the work in two so that visitors never need us.

Create an account See pricing

Who it is for

  • Sites where an untranslated or broken page costs sales or trust.
  • Teams that have been burned by a translation vendor outage.
  • Anyone who must be able to keep and move their translations.

Honest limits

  • While the control plane is down you cannot edit, translate or publish. Visitors are not affected.
  • If your own web host is down, the site is down; we cannot help with that. The CDN copies matter when your host is up but a copy is missing or slow.
  • The script needs JavaScript to swap text on WordPress and with the one-line script. Shopify's native route and the build-time routes (Next.js, Nuxt, Astro, static sites) put translated text in the HTML itself.
  • We have tested failover with simulated failures in a real browser, not during a real outage in production. Nothing is live yet.
  • A changed translation shows up when the next bundle version is fetched, not instantly.

How it works in 3 steps

  1. Control plane: where you work

    The dashboard, jobs and translation engines run on our servers. This is where you scan, translate, review and publish. It can go down.

  2. Publishing: signed static files

    Publishing builds a versioned bundle with a signed manifest and copies it to your own site and two independent CDNs. Nothing in a visitor's page view calls the control plane.

  3. Delivery plane: files and a small loader

    A small script (about 6 KB compressed) reads the files from your own site first, then the CDNs. It ignores a manifest with a missing or wrong signature or an older version, and if nothing works it shows your original text.

What a visitor sees when the vendor's servers are downTop: when translations are fetched from the vendor's servers on every visit and those servers are down, the visitor gets the untranslated page. Bottom: when translations are pre-built static files on your own site and two CDNs, the loader still finds them and the visitor gets the translated page; the vendor's servers are not needed.Translations fetched from the vendor at every visitVisitorYour page+ vendor scriptVendor serverofflineUntranslated or broken pagevisitors may leavePre-built bundles served from places you controlVisitorYour page+ loaderYour own siteCDN ACDN BTranslated pageas publishedVendor server offline: not needed
What a visitor sees when the vendor's servers are downTop: when translations are fetched from the vendor's servers on every visit and those servers are down, the visitor gets the untranslated page. Bottom: when translations are pre-built static files on your own site and two CDNs, the loader still finds them and the visitor gets the translated page; the vendor's servers are not needed.Fetched from the vendor at every visitVisitorYour page + vendor scriptVendor server offlineUntranslated or broken pagePre-built bundles from places you controlVisitorYour page + loaderYour siteCDN ACDN BTranslated pageas publishedVendor offline: not needed
What a visitor sees when a vendor's servers are down, with and without pre-built bundles.

Questions

What exactly happens if your servers go down?

You cannot log in, edit or publish until we are back. Visitors keep getting translations from the files on your own site and the CDNs. If one copy cannot be reached the loader tries the next; if none works it shows your original text.

Can a bad actor change my translations?

The loader checks a signature on the manifest and a checksum on each language file, and refuses anything unsigned, signed with an unknown key or older than a version it has seen. This is the design; read the trust page for its scope.

Do I keep my translations if I leave?

Yes. You can export everything, and already published pages stay available after a lapse.

How can I test this myself?

Block the translation CDN in your browser's developer tools, or take the files offline on a staging copy, and reload. The guide on testing translation failure walks through it.