Common challenge
Files and hooks handle runtime translation, but growing React teams still need shared status, review, terminology, and release coordination.
Platform localization
ReRune adds OTA translation delivery to React through @rerune/react while existing components keep using i18next, react-i18next, useTranslation(), namespaces, interpolation, plurals, and bundled fallbacks.





Files and hooks handle runtime translation, but growing React teams still need shared status, review, terminology, and release coordination.
React teams using i18next that want the public @rerune/react@1.0.0 SDK, OTA delivery, immediate bundled fallback, read-only browser credentials, and crawler-visible server rendering.
ReRune.setup(...) connects directly to the existing i18next instance instead of introducing a custom translation function, fetch interceptor, API base URL, or response decoder.
Workflow
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.
Connect the supported app runtime to a ReRune publish ID while keeping native or framework localization behavior in place.
Approve translation changes in the workspace, then publish runtime updates without turning every text fix into a full store release.
Let supported SDK hooks check for updates and refresh text when new approved localization payloads are available.
When runtime updates are unavailable, the app keeps reading bundled resources so localization failures do not break the product.
Coverage
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
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
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/rerunereruneConnect the project
Create the project config and connect the repository to its ReRune workspace.
rerune --pullPull approved updates
Bring current dashboard translations into the app or its build workflow.
rerune --pushPush local changes
Send local translation updates back to ReRune for the team to manage and publish.
Browser-native caching through @rerune/react, with ReRune.preload(...) for server-rendered and SEO-visible translations.
@rerune/react@1.0.0
npm install @rerune/react@1.0.0 i18next react-i18next
import {
createReRuneBrowserCacheStore,
ReRune,
} from '@rerune/react'
const cacheStore = createReRuneBrowserCacheStore()Choose the platform package and cache adapter once. The rest of your localization setup and component usage stays aligned across web and native.
i18next
Keep your existing resources, namespaces, language switching, and fallback rules.
ReRune.setup(...)
Bind ReRune once with a publishable, read-only OTA ID and the platform cache.
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
No. @rerune/react integrates with the existing i18next instance. Components continue using useTranslation(), t(), namespaces, interpolation, plurals, fallbacks, and i18next.changeLanguage().
Use ReRune.preload(...) before server rendering or generated SEO metadata, then hydrate the browser with initialHydrationState so crawler-visible content matches the OTA state.
Yes. @rerune/react@1.0.0 is published on npm for React apps that use i18next and react-i18next.
Explore next
Go deeper into the developer, platform, and delivery workflows connected to this page.
Manage web app localization with translation keys, AI assistance, CLI/API sync, and OTA delivery through the public @rerune/react SDK for i18next.
Read moreUse the public @rerune/react-native SDK for React Native OTA localization alongside ReRune translation management, AI assistance, and developer sync.
Read moreUse ReRune as a developer localization platform for app teams that need translation management, CLI/API sync, AI assistance, and OTA SDK delivery where supported.
Read moreCreate 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.