Skip to content

Change a word in Japanese. Watch it land, without a release.

Edit the string below and publish it. Three devices pick it up on their own clocks, with no rebuild, no app store review and nothing redeployed. Pin a version and it never changes under a screen somebody is reading.

the stage clock runs a sixty second window in six. Everything else on the plate is the shipped mechanism
acme / checkout · ja-JP · checkout.pay_nowlatest v17
the string
⌘⏎ or Ctrl+⏎ publishes too
versions, newest first
v17今すぐお支払いください1 dlatest
v16今すぐお支払い2 d
v15今すぐ払う3 d
the last 20 versions stay pinnable. Older ones are pruned and answer 404 rather than serving something else
the edge
immutable · cached one year
/cdn/acme/ja-JP/v17
etag "v17-81af14"
content addressed. This URL will never change again.
latest · mutable
/cdn/acme/ja-JP
cached 60s, then revalidated with the ETag
on this stage: one window every 6s
14:03v17 · current
checkout
2 items · ¥13,400
今すぐお支払いください
iOS · cold startfetches in 6s
acme.com/checkoutv17 · current
checkout
2 items · ¥13,400
今すぐお支払いください
web · next.js, SSRfetches in 4s
docs / checkoutv17 · current
OverviewCheckoutPaymentsRefunds
今すぐお支払いください
docs sitefetches in 2s
Running in your browser on a fast clock. The sixty second window and the twenty kept versions are the shipped ones.

A typo in Japanese, at 9pm. One of these two is your evening.

Illustrative shape, not a stopwatch. The app store lane is what mobile teams tell us rather than a figure we measure; our lane is the sixty second revalidation window we ship.
branch
CI build
QA pass
submit
review queue
a point release, through the app store
your reader’s own experience, not a figure we measure
10 s
The axis is logarithmic: every gridline is about ten times the last.
The runtime fetches on start and whenever you ask it to. A pinned version never changes under a screen somebody is reading.

Everything you can ship without shipping a release.

Fix a typo in Japanese without an app store review. A published correction is live inside the minute the latest URL revalidates, and the last 20 versions per locale stay pinnable so a rollout you are halfway through never breaks under you.
how fast a fix lands
no build, anywhere
60s

Fix it now, not next release.

Approve a correction and every running copy of your app has it inside the minute. Nothing is rebuilt, nothing is resubmitted, and nobody waits on a review queue.

nothing changes under anyone
ja-JP

The version you pinned keeps working.

POST /v1/cdn/publish locale=ja-JP
published ja-JP v18
immutable /cdn/acme/ja-JP/v18 · 1 year
v17 still served to clients pinned to it
what you have to install
zero dependencies

One package, and it already knows your framework.

  • react
  • vue
  • svelte
  • next.js
  • sveltekit
  • angular
  • solid
  • i18next
rolling back
20

versions you can go back to

A bad translation is undone by pointing at the previous URL. There is nothing to restore and nothing to redeploy.

the key in your app
read only

Shipping it in a binary is safe.

It can fetch and it can do nothing else: it cannot write a translation, create a key or reach another project, and it is rate limited per key and per IP at the origin.

you are not locked in

One of four ways out.

The same reviewed strings still leave as a pull request, a write back to your CMS, or a file sync. This is a choice, not a dependency.

Zero dependencies. Knows your framework.

The runtime fetches the bundle, caches it and hands your components a string. The framework packages wrap it so a locale change is a re-render rather than a reload, and the server rendered ones resolve on the server, so there is no flash of English before the real language arrives.

npm i @transglot/react-i18n
import { TransglotProvider } from '@transglot/react-i18n'; <TransglotProvider  options={{    baseUrl: 'https://api.transglot.ai',    project: 42,    cdnKey: 'taicdn_…',    locale: 'en',  }}>

FAQs

The questions that decide whether over the air delivery is worth the change.

Can I update translations without releasing a new app version?
Yes, and that is the whole product. Approved translations publish to an edge bundle your app fetches at runtime, so a corrected string is live inside the minute the latest URL revalidates. No rebuild, no store review, no redeploy.
Every publish mints an immutable versioned URL, cached for a year, plus a mutable latest URL that revalidates every sixty seconds. Your runtime fetches on start and whenever you ask it to. Pin a version and it never changes under a screen somebody is reading.
The runtime serves the bundle it already cached, and a build that shipped with its locale files still has them. Dispatch is how a string gets newer, not how it exists.
Only if you ask for it. The runtime fetches on start and when you tell it to. There is no push channel forcing a swap under a screen somebody is reading.
A CDN key is read only. It cannot write a translation, create a key or read another project, and it is rate limited per key and IP at the origin, so a leaked one cannot be used to hammer us either.
Point at the previous version URL. It is immutable and still there. The last twenty versions per locale are retained, so a rollback is a URL change rather than a restore.
Dispatch needs a project token and the Free plan cannot mint one, so it starts at Starter: $19 a month for 300,000 words.
Only if you want it to. The same reviewed strings still go back as a pull request, a connector write back or a file storage sync. Dispatch is one of the four exits, not the only one.
your turn

Never file a ticket for a typo again.

Delivery, the CLI, the Action and the API from the Starter plan at $19 a month.
Works with the tools you already run