RNEF (React Native Enterprise Framework) is a toolkit designed to accelerate React Native app development for enterprise teams. It provides a CLI and Remote Cache system (currently integrated with GitHub Actions) to make your team's development workflow more efficient.
If you feel like skipping this intro section and try it out in existing Community CLI project, feel free to head over to Migrating from Community CLI page. Or go to Quick start to initialize a new project.
On a daily basis at Callstack, we're serving clients that usually have large teams, building complex apps for years, accumulating tech debt, becoming slower and slower to iterate, where time is wasted on waiting for builds and onboarding web engineers into intricacies of mobile platforms. According to the React Native Framework RFC, almost all of these companies are building their own frameworks based on the Community CLI—they just don't open source them to make them available for everyone, and for good reasons.
As maintainers of the Community CLI, we have quite the exposure to how this tool is used (and misused) in various projects. When we evaluated how our clients use it and what our developers are challenged with, we noticed that these companies encounter similar challenges that they address uniquely:
We also have clients who:
Using anything other than the Community CLI is not an option for them currently.
We exist to serve all these needs.
We build the framework with a clear focus: to serve large teams and complex apps. These projects require flexibility, the ability to host everything on their own, deploy to as many platforms as possible, and decrease onboarding time. That's why our engineering design choices focus on:
We've created a new CLI from scratch with a focus on seamless migration from the Community CLI. Most projects can replace their local build and run experience with our CLI in under 10 minutes.
Its core part is modular configuration mechanism allowing for customizing the capabilities (and soon also DX) to your needs through a system of plugins and replaceable parts of the build chain, such as: bundler, platforms, remote cache provider, or helpers exposed through variety of npm packages.
For the best DX we focus on our CLI to be entrypoint to that system. In the future we imagine you can interact with it through other tools, like Shopify's Tophat, AI agent, or a custom CLI you already have and control.
The CLI handles all essential build and deployment tasks:
We've updated command names:
run-android
→ run:android
build-android
→ build:android
run-ios
→ run:ios
build-ios
→ build:ios
For a complete list of new commands, visit the CLI page.
We've standardized flag naming across platforms:
Android:
--mode
→ --variant
--appId
→ --app-id
--appIdSuffix
→ --app-id-suffix
iOS:
--mode
→ --configuration
--buildFolder
→ --build-folder
--destination
→ --destinations
We've simplified the interface by removing redundant flags:
--interactive
/-i
– CLI now prompts for input when needed--list-devices
– Device selection is now automatic when no devices are connectedThe Remote Cache is an optional but powerful feature that speeds up your development workflow. It acts as a centralized storage for native app builds that can be retrieved either manually or through our CLI. The cache can be hosted on various platforms:
Out of the box we support storing artifacts on GitHub Actions and we're working on more providers.
.rnef/
directory)We provide a set of reusable GitHub Actions that handle:
Learn more about GitHub Actions configuration.