Guides

How to update app text without an app store release

CMSCure team, November 10, 2026

Text that is compiled into an app can only change with a new release. This guide explains why, compares the common ways to make app text remote, and walks through doing it with CMSCure.

Why text changes usually need a release

On iOS and Android, UI strings usually live inside the app bundle: Localizable.strings files, strings.xml resources or constants in code. The installed app only knows the text it shipped with, so changing a word means editing the code, building, submitting to the store, waiting for review and then waiting for users to update.

For a typo or a promo line that cycle is slow. It also ties every copy change to developer time, even when the person asking for the change works in product or marketing.

Ways to make app text remote

Each approach below moves the text out of the build and loads it at runtime. They differ in how much you build and run yourself.

  • Build your own: an API that returns strings, a database, an admin panel to edit them, and client code to fetch, cache and refresh.
  • A remote config or feature flag service: key value parameters fetched by the app, designed mainly around flags, targeting and experiments.
  • A headless CMS for UI content: a dashboard built for text, colors, images and translations, with SDKs that bind content to the UI and push updates.

Step by step with CMSCure

CMSCure follows the third approach. The example below uses the JavaScript SDK; the iOS, Android and React Native SDKs follow the same pattern with their own wrappers and hooks.

  • Create a project in the dashboard and add a tab for the screen, for example home_screen.
  • Add a key for each string, such as welcome_title and cta_button, with a value for every language you support.
  • Install the SDK and configure it with your Project ID, API key and project secret. The project secret turns on real time updates.
  • Read each string through the SDK instead of hard coding it.
  • Publish. Connected apps receive the new text over WebSocket within seconds.
javascript
const cure = new CMSCureSDK();
await cure.configure({
  projectId: 'YOUR_PROJECT_ID',
  apiKey: 'YOUR_API_KEY',
  projectSecret: 'YOUR_PROJECT_SECRET',
  defaultLanguage: 'en'
});

cure.observe('home_screen:welcome_title', value => {
  document.getElementById('title').textContent = value;
}, { defaultValue: 'Welcome' });

Keep a fallback in the app

Pass a default value when you read a key, so the UI has sensible text before the first sync. After that the SDK caches content on the device (localStorage on the web, UserDefaults on iOS) and keeps showing the last published values when the app is offline.

What still ships in a release

Remote text works best for copy that changes often: labels, titles, banners, error messages, onboarding hints and promotions. App logic, layout and new features still ship through your normal release process.

Frequently asked questions

Can I change app text without publishing a new version?

Yes, if the app reads its text from a remote source at runtime. With CMSCure, the SDK loads the published text, caches it and receives updates over WebSocket, so a change goes live without a new build.

Do I need my own backend for remote text?

Not with CMSCure. Content is hosted and delivered by CMSCure, so there is no server, database or admin panel for you to run.

Does this work for translations too?

Yes. Each key holds a value per language, and switching the language at runtime updates every bound string.

Related features

Ready to stop waiting on UI releases?

Read the docs to see how fast you can integrate, or start building with CMSCure today.

Update app text without an app store release | CMSCure