The speakers outline common pipelines for JavaScript checks, native iOS and Android builds, end-to-end tests, and release previews. They say native builds can take 25 to 40 minutes, while caching dependencies, Xcode derived data, and C++ compilation can help but may be slow or unreliable. They recommend measuring cache performance because large caches can cost more time to retrieve than a fresh install.
From Hours to Minutes: Making Your React Native CI Builds 20x Faster
Speakers
Mihai Peshawa, principal engineer at Callstack, and Mike, Callstack’s CTO and co-founder, present the React Native Enterprise Framework and its CI build reuse approach, with an example from Expensify.
Callstack’s open-source React Native Enterprise Framework builds on the history of the Community CLI and React Native’s move toward framework-based development. Its design emphasizes modularity, self-hosting, and incremental adoption for both existing React Native projects and native apps adding React Native. Teams can configure platforms, bundlers, plugins, and a remote cache provider.
The Expensify demo shows GitHub Actions workflows using the framework to find and reuse native build artifacts. The CLI calculates a fingerprint for the project and checks the remote cache; when it finds a match, it downloads the artifact, and when it does not, it builds locally. In the demonstrated setup, many workflows took about one or two minutes, while a fresh Android build could take around 38 minutes.
For every 25 repository changes at Expensify, about one triggered a native build; the other 24 were JavaScript or other non-native changes. The presenters report that this reduced native builds from every change to 4% of changes, cut monthly GitHub Actions costs for debug iOS and Android builds from about $6,000 to $317, and reduced compute for 25 builds from over 16 hours to about 90 minutes. They say release builds and end-to-end tests remain opportunities for further reuse.
The speakers describe creating a project with `npm create rnf-app` or migrating from the Community CLI, then adding remote caching as needed. They discuss integrating with Fastlane and implementing cache providers for other storage systems, while noting that GitHub Actions support is available out of the box. They also mention roadmap items including more cache providers, continuous native generation, out-of-tree platforms, and mobile micro-frontends.
Takeaways
- Measure cache retrieval and setup time against a fresh build before adopting a caching strategy.
- Check how often changes affect native code; if most changes are JavaScript-only, native build reuse may save substantial CI time.
- Use project fingerprints to reuse native artifacts when the relevant project inputs have not changed.
- Adopt the framework incrementally: migrate the CLI first, then add remote caching or brownfield support as needed.
Mentioned in this talk
Search inside this talk
What was claimed 12
- built
“I've been fortunate to work on a new framework for React Native called the React Native Enterprise Framework”
YouTube Verified4 sources· Talk
- role atMihai Peshawa is principal engineer at
Callstack“I'm a principal engineer at Callstack”
YouTube Unverified1 source· Talk
- role at
“I'm Mike, CTO and co-founder at Callstack.”
YouTube Unverified1 source· Talk
- integrates withReact Native Enterprise Framework integrates with
GitHub Actions
“remote caching takes the form of a GitHub Action”
7:37inWhy You Need React Native Enterprise FrameworkYouTube Verified4 sources· Talk
- usesfor remote builds
“we're using it for remote builds.”
12:33inUser-Focused Performance TrackingYouTube Verified3 sources· Talk
- uses
“The Enterprise Framework calculates a hash, thanks to the Expo Fingerprint package”
YouTube Unverified1 source· Talk
- metricExpensify: For every 25 repository-triggered builds, 1 is a native build and 24 take about 2 minutes; native builds take around 30–40 minutes.
“every 25 builds or triggers from repository changes, we have one native build”
YouTube Unverified1 source· Talk
- metricExpensify: Monthly GitHub bill for debug iOS and Android builds fell from around $6,000 to $317.
“the monthly GitHub bill for debug iOS and Android builds is 20 times smaller, going from around $6,000 to $317”
YouTube Unverified1 source· Talk
- featureReact Native Enterprise Framework: Remote cache checks a project fingerprint and downloads a matching native build artifact; if none is found, it falls back to a local build.
“If one is there, it’s downloaded and installed on the device. If not, it falls back to a local build”
YouTube Unverified1 source· Talk
- integrates withHot Updater integrates with React Native Enterprise Framework
“There’s a community project called Hot Updater that officially supports React Native Enterprise Framework.”
YouTube Unverified1 source· Talk
- integrates withExpo Updates integrates with React Native Enterprise Framework
“you can use Expo Updates, which you should be able to include on top of RNF”
YouTube Unverified1 source· Talk
- integrates withFastlane integrates with React Native Enterprise Framework
“For some early adopters, we tied Fastlane together with RNF.”
YouTube Unverified1 source· Talk





