$ cd ../notes

Products Budding6 min read

ReRune: text changes without another app release

Rubin Basha

At BasalBit we are building ReRune. Its motto is "Own your product copy": ReRune helps teams manage translations and text changes across mobile and web apps in one place, and control what their app says in every language. I have shared it piece by piece over the last months, so here it is in one place, checked against rerune.io as of October 2026.

If you would rather see it than read about it, open the live sandbox. No signup, no project setup.

Why we built it

The person who notices a wrong text in an app is often not the person who can change and release it. So a small wording change becomes a ticket, a code change, and something that has to wait for the next app release.

We built ReRune to shorten that path without removing the controls around it.

Localization is also broader than translation. It includes managing and delivering text adaptations across languages, regions, markets, brands, and application contexts. Language is only half of it. The other half is the audience.

Over the air, after review

With ReRune, teams manage translation keys and localized copy in one workspace, review changes, and publish approved values. Review, ownership, and controlled publishing remain part of the process. But once a copy or translation change is approved, the app can pull it over the air without waiting for another development cycle, binary release, Apple App Store review, or Google Play review.

We started with Flutter. Today the ReRune SDKs deliver approved text to Flutter, Android, iOS, React, React Native, and Angular apps, and they can also bring in a language published in the dashboard without a new release. On iOS that works with both UIKit and SwiftUI. If an update is unavailable, the app keeps the translations bundled with its release as fallback. New code paths still ship through the normal release process.

There is a difference between Hot Reload and OTA, by the way. The first is development related, the second is runtime, after the product is released.

AI, with context and a human in the loop

Traditionally, translations in apps are often treated almost like string replacement: translate text A from language X to language Y. But language is heavily context dependent. The same sentence can mean very different things depending on the screen it appears on, the industry domain, the tone of the product and the user action behind it.

So in ReRune the AI works with context. You can use DeepL machine translation or AI models through OpenRouter, both optional, and project context and dictionaries keep product names, legal wording and support language consistent across locales. The "best model" may not be the same for every language pair or domain.

AI has made translation fast. The harder problem is keeping ownership of the process and the output. Process automation handles the workflow. A human stays in the loop. When changes are approved, the OTA utility gets them into the product. The output may come faster now, but the team still understands and controls what finally reaches the product.

Start where you are

  • Bring your translations. Push the localization files from your existing project directly to ReRune. Whether you used Localazy, Lokalise, Phrase, Crowdin, or managed the files yourself, you don't need to recreate your translations. The SDKs plug into the i18n your app already uses, so calls like t(), getString and NSLocalizedString stay the same.
  • Or start with hardcoded text. The onboarding wizard guides your coding agent through adding translations and integrating the SDK, so you end up with a localized app connected to ReRune. There is also an MCP integration for AI assistants.
  • Or let the build fetch it. The ReRune CLI can pull published translations as part of your build. Your team reviews and publishes the text in ReRune, and the pipeline picks it up on its next run. There is a runnable GitHub Actions demo in the CI/CD guide and a walkthrough video.

Newer pieces

Live preview staging. Test clients receive saved draft translations, while normal clients continue receiving published text. Your team can check the wording and layout on the actual screen and publish when ready. Here's how it works.

Variants. Apps often share one codebase and one language, but not every sentence. One customer needs "Contact support". Another needs "Contact your account manager". Free users see "Upgrade to Pro", and a white-label app greets with its own name. The usual workaround is copying the whole catalog per audience, and then every shared sentence gets maintained twice. With variants, teams keep one Main translation and add only the values that differ, for A/B tests, brands or plans. Everything without an override falls back to Main, and your app selects the matching copy. More on variants.

Pricing the resource, not the seat

When every additional colleague adds €20, €50 or €100 to the monthly bill, customers naturally start asking who really needs access. Software meant to help teams collaborate ends up giving them a reason to restrict it.

So in ReRune, projects, languages, hosted words and collaborators are unlimited. ReRune meters only two things: translation keys and monthly OTA quota. Whether the work around those resources is done by 2 people, 20 people or increasingly by software agents should not fundamentally change the bill. It is not the right model for every product, and pricing by resource brings its own trade-offs, but it is worth challenging assumptions that have been around for years.

There is a Free plan with 300 translation keys and 1 GiB of OTA quota a month, no card required. Paid plans start at €19.95 a month including VAT, and keys or OTA quota can be added on without switching packages. The current plans are on the pricing page.

Building in public

Building in public should mean more than announcing a feature after it is finished. It should also mean showing the work in progress, the decisions we are making and the direction we are heading.

That is what our YouTube channel is for. We are building ReRune for real product teams, so feedback matters more than assumptions made in isolation. If something is missing, we would like to hear about it.

Try it

The best way to understand ReRune is the live sandbox. It opens a ready-made translation project and a demo app, with no signup and no project setup, and it is cleared after your session. Edit a key, publish your wording, and refresh the app to see it change. That is the whole idea of ReRune in a few clicks.

On the homepage, a 14-second video shows the same path from dashboard to app.

R.O.E. GmbH, our first pilot customer, moved their translation work from large spreadsheets into one ReRune workspace, and ReRune now supports the localization of their Check It app. Their story is here.

$ ./contact

If you are building something

A new app, a prototype that needs to become a real product, or a team that needs senior hands. Tell me the problem. I will tell you honestly whether we are a fit.