Platform localization

Web app localization connected to the same product workflow.

ReRune keeps web app text alongside mobile and cross-platform surfaces, with CLI/API workflows for browser products and OTA delivery through @rerune/react for teams using i18next.

ReRune dashboard showing localization workspace activity and project status
ReRune projects list showing real localization projects in a workspace
ReRune project keys view for managing software translation keys
ReRune OTA demo mobile app landing screen with live localization status
ReRune OTA demo mobile app story screen showing runtime translation content

Common challenge

Web teams manage interface text, settings, onboarding, and release copy across languages that can easily drift from the rest of the product.

Best fit

Web product teams that need translation management, context, AI assistance, and developer sync without isolating browser copy from the rest of the product.

How ReRune helps

ReRune keeps web app localization aligned with app localization, so teams can share dictionaries, metadata, workflow, and sync patterns across surfaces.

Workflow

From app copy to release-ready localization.

ReRune connects translation management to the delivery path developers already use: dashboard work, AI assistance, CLI/API sync, and OTA updates where a supported SDK is installed.

1

Collect product text

Manage keys, languages, values, placeholders, dictionaries, metadata, and project context before translation work spreads across files and messages.

2

Translate with context

Use DeepL or OpenRouter-assisted translation flows with dictionaries and product context close to the text being reviewed.

3

Sync through developers

Use CLI/API workflows to move approved translations into repositories, CI/CD jobs, scripted release tasks, or custom platform integrations.

4

Deliver safely

Export platform formats or publish OTA updates for supported SDKs while keeping bundled app resources as the safe fallback.

Coverage

App-first does not mean mobile-only.

Start where localization creates release friction, then keep web, mobile, and cross-platform products in one shared workspace as your surface area grows.

Developer delivery

Sync through the CLI. Publish through OTA SDKs.

Use the ReRune CLI locally or in CI/CD to manage project translations, then deliver approved runtime updates through the SDK built for your app.

Companion CLI

Install the ReRune CLI

Use the ReRune CLI to sync, validate, and manage translations right from your terminal. Run syncs in CI/CD or locally whenever you need to push a new language.

Homebrew (macOS/Linux):

brew install BasalBit/tap/rerune
  • Downloadable builds for macOS, Linux, and Windows
  • Uses the API keys you generate in the dashboard
  • Fits scripted CI/CD workflows through CLI and API access
rerune

Connect the project

Create the project config and connect the repository to its ReRune workspace.

rerune --pull

Pull approved updates

Bring current dashboard translations into the app or its build workflow.

rerune --push

Push local changes

Send local translation updates back to ReRune for the team to manage and publish.

React Web

Browser-native caching through @rerune/react, with ReRune.preload(...) for server-rendered and SEO-visible translations.

React Webi18nextOTA

Quick Start

@rerune/react@1.0.0

View on npm
npm install @rerune/react@1.0.0 i18next react-i18next

import {
  createReRuneBrowserCacheStore,
  ReRune,
} from '@rerune/react'

const cacheStore = createReRuneBrowserCacheStore()

One integration flow

Choose the platform package and cache adapter once. The rest of your localization setup and component usage stays aligned across web and native.

  1. 1

    i18next

    Keep your existing resources, namespaces, language switching, and fallback rules.

  2. 2

    ReRune.setup(...)

    Bind ReRune once with a publishable, read-only OTA ID and the platform cache.

  3. 3

    useTranslation()

    Render with normal react-i18next calls; remote values override only the keys they provide.

Shared i18next and ReRune setup

import i18next from 'i18next'
import { initReactI18next, useTranslation } from 'react-i18next'

const resources = {
  en: { translation: { headline: 'Bundled headline' } },
  de: { translation: { headline: 'Gebündelte Überschrift' } },
}

await i18next.use(initReactI18next).init({
  lng: 'en',
  fallbackLng: 'en',
  defaultNS: 'translation',
  resources,
  interpolation: { escapeValue: false },
})

export const reRuneClient = ReRune.setup({
  i18n: i18next,
  otaPublishId: '<READ_ONLY_OTA_PUBLISH_ID>',
  defaultLocale: 'en',
  bundledResources: resources,
  cacheStore,
})

export function Headline() {
  const { t } = useTranslation()
  return t('headline')
}

Questions

Questions teams ask before choosing a localization platform.

Can ReRune manage web app localization?

Yes. ReRune can manage web app translation keys, languages, values, dictionaries, metadata, import/export, and CLI/API sync from the same workspace.

Does web app localization support OTA updates?

Yes. React websites can add the public @rerune/react SDK on top of i18next and react-i18next so OTA values override bundled translations while normal fallbacks remain available.

How does AI translation stay controlled?

ReRune keeps AI assistance close to project context, dictionaries, placeholders, structured values, and review steps so generated translations can be checked before sync or publish.

One workspace

Start with one product workflow and expand from there.

Create projects, manage keys, use AI assistance with context, sync through CLI/API, and publish approved runtime updates when your app uses a supported ReRune SDK.