---
title: "Modernizing a Crypto Trading Platform With React Native and Self-Hosted OTA"
description: "We rebuilt the React Native integration and release architecture behind a large crypto trading platform used by millions of people. Native artifacts, a monorepo, fingerprint-based OTA, and AI-assisted workflows gave product teams a controlled way to move more screens to React Native while continuing to ship features."
url: https://www.callstack.com/case-studies/modernizing-mobile-apps-in-production-with-react-native-and-self-hosted-ota
updated: 2026-10-30T18:14:01.489Z
---

# Modernizing a Crypto Trading Platform With React Native and Self-Hosted OTA

We rebuilt the React Native integration and release architecture behind a large crypto trading platform used by millions of people. Native artifacts, a monorepo, fingerprint-based OTA, and AI-assisted workflows gave product teams a controlled way to move more screens to React Native while continuing to ship features.

**A brownfield architecture that kept feature delivery moving across financial apps used by millions**

_Client: Crypto trading platform · Industry: Finance · Date: 2026 · Size: Enterprise_

Services: [Migrations & Upgrades](https://www.callstack.com/capabilities/ai-assisted-migrations), [Architecture & Performance](https://www.callstack.com/capabilities/architecture-performance)

## Company: Crypto trading across mobile apps

The client is one of the largest crypto trading platforms. Its iOS and Android apps serve millions of active users, with new features released across a mature mobile ecosystem.

## Challenge: Modernizing mature apps while teams kept shipping

The client’s native iOS and Android products had been evolving for nearly a decade. They serve millions of people and continue to receive new features, so modernization had to fit around active delivery. A destabilizing release could disrupt trading and other revenue-critical flows, which ruled out a single cutover and made screen-by-screen migration the safest path.

When we started the engagement, the React Native, iOS, and Android codebases lived in separate repositories connected through Git submodules. Configuration and API dependencies crossed those boundaries, leaving native teams responsible for parts of the React Native toolchain and increasing the cognitive load of routine product development.

With more than 200 developers contributing across the ecosystem, the architecture could no longer meet the organization’s needs. React Native had to be encapsulated so iOS and Android engineers could integrate new screens without learning or maintaining its toolchain.

## Numbers: From architecture changes to measurable adoption

- **4x** increase in RN pages across the tracked page set
- **30%** React Native adoption reached during the migration
- **Millions** MAUs covered by the production-ready OTA model
- **1/3** reduction in JavaScript bundle size

## Our work: Rebuilding the architecture behind the migration

The first challenge sat at the boundary between React Native and the native apps: the Git submodule setup spread configuration and API dependencies across repositories, increased maintenance, and left native teams responsible for parts of the React Native toolchain.

We redrew that boundary by packaging React Native code as AARs for Android and XCFrameworks for iOS. Native teams could consume React Native screens through familiar artifacts, while Node and React Native configuration stayed outside the native applications. This made ownership clearer and brought the integration closer to the release practices those teams already used.

![](https://www.callstack.com/assets/6a9a6950fae86f93ca340aba_iOS-and-RN-codebase.webp)

Shared code moved toward a monorepo, supported by an external design system package, refactored navigation, and CDN-based image delivery. Together, these changes provided a steadier foundation for moving one screen at a time while established native flows remained in production.

![](https://www.callstack.com/assets/6a9a69758d3604352014752a_RN-codebase.webp)

Our team worked directly with product teams whenever React Native-specific issues surfaced, then turned those fixes into workshops, short technical videos, worked examples, and written guidance. Developers across the organization could reuse the resulting patterns instead of solving the same problems independently.

### Owning the full over-the-air update lifecycle

To fix bugs without relying on App Store review, we were tasked with introducing the over-the-air (OTA) updates. The OTA layer needed to be self-hosted and fit the brownfield architecture. It also had to avoid Expo-specific assumptions while remaining compatible with [Re.Pack](https://github.com/callstack/repack) and planned Module Federation use. `hot-updater` met those requirements and offered a more focused codebase than the older CodePush forks we assessed.

We needed to ensure native-to-JS compatibility at the build level to avoid OTA version skew targeting the wrong native release, which could result in a crash. We created tooling that generated a fingerprint for every native build and embedded it in `Info.plist` and `AndroidManifest.xml`, allowing each OTA bundle to reach builds with a matching native layer. Release teams gained finer control over update eligibility than app-version matching could provide. During the implementation, we also contributed two fixes to `hot-updater` to improve its fingerprinting logic.

### Giving coding agents project context

AI-assisted workflows had to follow the same engineering standards as the product teams. We created custom skills containing guidance for React Native development, testing, framework upgrades, and React.

[agent-device](https://github.com/callstack/agent-device) gave coding agents access to simulators and physical devices, while `agent-react-devtools` supplied React DevTools context for profiling components and finding excessive rerenders. MSW and Maestro added reusable testing and automation patterns.

## Results: Growing React Native adoption from under 10% to about 30%

The new brownfield architecture gave the client a repeatable way to expand React Native while feature work continued. Native artifacts kept React Native configuration outside the native applications, while the monorepo gave teams a common foundation for future migrations.

Over six months, React Native adoption rose from under 10 percent to about 30 percent across the tracked page set, as the number of React Native pages nearly quadrupled and new feature development continued.

Self-hosted OTA became production-ready for applications serving millions of monthly active users. Because update eligibility was based on native fingerprints, an update could reach every compatible build whose native layer remained unchanged, without depending on coarse app-version matching.

Testing and performance practices matured alongside the migration. Teams gained reusable integration and e2e tests examples, reinforced through workshops and written guidance, while a DMAIC-based performance practice introduced a consistent way to measure and improve application performance. CI regression checks tracked bundle size and related metrics.

The results were measurable: tracked reporting showed an approximately one-third reduction in JavaScript bundle size. More broadly, the client gained a lower-risk path for modernizing mature applications while continuing to deliver features, and established user flows could remain stable as more of the products moved to React Native.

## Build and scale React Native apps.

For over a decade, enterprise teams have trusted us with React and React Native products. Our senior engineers work with AI agents on new builds, complex migrations, and native engineering. [Contact us](https://www.callstack.com/contact)

### Talk to our team

We’ll connect you with the right expert within 24 hours.

## How we’ve solved similar challenges

- [Building Storybook Connect for JetBrains Twice as Fast With AI](https://www.callstack.com/case-studies/building-storybook-connect-for-jetbrains-in-25-working-days)
- [Teamworks cut mobile change lead time from days to minutes](https://www.callstack.com/case-studies/accelerating-teamworks-mobile-delivery-with-re-pack-and-module-federation)
