Many mobile teams reach a point where maintaining duplicate implementations across iOS and Android becomes unsustainable. React Native promises a unified approach - but for mature apps, a full rewrite is rarely an option. It’s expensive, risky, and difficult to align with continuous product development. In practice, for mature products, most migration efforts are discarded as infeasible. React Native Brownfield is the solution - a set of tools for embedding your React Native app in native apps as a self-contained library, which allows for a gradual adoption of React Native in native applications.
In this talk, we will do a deep dive into the internals of Brownfield: how are RN apps packaged, what tooling is needed to cover all use cases (navigation stack, JS-native state sharing, CLI), why we had to implement a custom Gradle Plugin, a few things about real-life problems with transitive dependency handling, SO stripping, how Hermes V1 is handled on Android, how prebuilt RN core on iOS (0.81+) is handled with backwards compatibility, and finally - how the integration of this complex library with Expo is handled using just 1 line of code for the end user, thanks to an Expo config plugin.
This talk has been presented at React Day Berlin 2026, check out the latest edition of this React Conference.























