Brownfield development adds new capabilities to an existing application. Hur describes two ways to integrate React Native: configure it inside the native app, or package it separately as an iOS XCFramework or Android Archive Library. Teams may face setup complexity, runtime and compiler errors, limited React Native experience, and weeks of work to evaluate a migration.
AI Assisted Migrations to React Native: From Months to Days
Speakers
Hur, a brownfield and performance specialist at Callstack, presents AI-assisted React Native migrations with Callstack’s host and business development manager Jacob.
Hur introduces Brownfield Navigation for showing existing native screens from React Native, Brownie for sharing data between native and React Native code, and a postMessage API for communication such as clearing storage on sign-out. The tooling also supports Expo. Callstack’s Brownfield Skills are designed to help agents initialize React Native, configure builds, and link generated frameworks to native apps.
The proposed migration path is to evaluate React Native, choose one or both platforms, and start with a low-impact screen such as Settings. Teams can then validate the approach and expand to a feature with greater business impact. Hur summarizes the stages as analyze, rewrite, validate, and expand, while emphasizing the need to configure agent skills for React Native quality and performance.
In a Mastodon demo, an agent sets up React Native in the native app and checks that it builds. A requirements analyst then explores the login screen and records screenshots, layout hierarchy, colors, fonts, and spacing in a requirements file. A developer agent rewrites and wires the screen, and a tester checks it against acceptance criteria and produces a QA report.
The demo reveals issues with login navigation and header alignment, which the developer agent fixes after receiving the QA report; the tester then confirms the acceptance criteria pass. Hur says human review remains necessary because agents can make mistakes, and highly customized setups such as Bazel builds may exceed their ability to resolve dependency conflicts. The speakers also describe packaging React Native as standard native artifacts so it can be reused in Flutter applications.
Takeaways
- Start a brownfield evaluation with a low-impact screen to test integration before committing to a larger migration.
- Use a requirements file with screenshots and layout details to guide screen rewrites and validation.
- Have agents build and test in a feedback loop, with a person reviewing failures and fixes.
- Check native dependency versions and artifact packaging to avoid duplicate libraries and symbol conflicts.
- A framework-based React Native package can be reused by native and Flutter applications.
Mentioned in this talk
Search inside this talk
What was claimed 11
- role at
“I'm a business development manager at Callstack”
YouTube Unverified1 source· Talk
- role at
“I mainly work on performance optimizations and brownfield work at Callstack”
YouTube Unverified1 source· Talk
- featureBrownfield Navigation: Presents existing native screens from React Native
“It allows you to present existing native screens from React Native”
YouTube Unverified1 source· Talk
- launched
Callstack launched Brownfield Navigation“Callstack recently released a package called Brownfield Navigation”
YouTube Unverified1 source· Talk
- featureBrownie: Shares a single piece of data between React Native and native code
“use Brownie to share a single piece of data between React Native and native code”
YouTube Unverified1 source· Talk
- featureReact Native Brownfield: Provides a postMessage API for two-way communication between native and React Native code
“support for the postMessage API is being added to the React Native Brownfield package”
YouTube Unverified1 source· Talk
- metricBrownfield Skills: Can reduce proof-of-concept evaluation timelines from weeks to a few hours per platform
“reduce proof-of-concept evaluation timelines from weeks to a few hours for each platform”
YouTube Unverified1 source· Talk
- uses
“generate an XCFramework and an AAR from your Expo or React Native application”
YouTube Unverified1 source· Talk





