React Native 0.84: Hermes V1 Default and Performance Enhancements

Welcome to React Native 0.84! This release marks a major milestone by making Hermes V1 the default JavaScript engine, delivering automatic performance boosts to all apps. Alongside this, we've streamlined iOS builds with precompiled binaries, removed legacy architecture remnants, and raised the minimum Node.js version to 22. Below, we answer the most pressing questions about what’s new, how to migrate, and how these changes impact your development workflow.

What are the key highlights of React Native 0.84?

React Native 0.84 introduces several transformative changes aimed at improving performance, developer experience, and app size. The headline feature is that Hermes V1 is now the default JavaScript engine on both iOS and Android, following its experimental debut in 0.82. This brings faster code execution and lower memory usage without any configuration changes. Additionally, precompiled iOS binaries are shipped by default, drastically reducing clean build times. Legacy Architecture code is being removed step by step—this release makes that removal the default on iOS, further trimming app size and build duration. Lastly, the minimum Node.js version is raised to 22, ensuring compatibility with the latest tooling and security updates. These updates are designed to be seamless for most projects; however, developers who need to opt out can do so using provided overrides.

React Native 0.84: Hermes V1 Default and Performance Enhancements

Why is Hermes V1 now the default for all React Native apps?

Hermes V1 represents the next evolution of the Hermes JavaScript engine, with substantial improvements to both the compiler and virtual machine. By making it the default, React Native ensures that every app benefits from measurably better JavaScript performance—faster startup, smoother runtime execution, and reduced memory footprint. Since Hermes has been the default engine since React Native 0.70, existing Hermes users automatically receive Hermes V1 without any migration steps. The engine is now enabled by default for both iOS and Android, so new projects also get the performance boost out of the box. This change aligns with the broader goal of simplifying the React Native architecture and delivering a consistent, high-performance experience across platforms. For most teams, this update is completely transparent—just upgrade and see the gains.

How can I opt out of Hermes V1 if needed?

While Hermes V1 is strongly recommended, React Native provides clear opt-out paths for situations requiring the legacy Hermes version. Use a package manager override to force the old hermes-compiler package version 0.15.0. For npm, add this to package.json: "overrides": { "hermes-compiler": "0.15.0" }. For Yarn, use "resolutions", and for pnpm, a "pnpm"."overrides" block works. On iOS, when installing CocoaPods dependencies, set the environment variables RCT_HERMES_V1_ENABLED=0 and RCT_USE_PREBUILT_RNCORE=0. On Android, add hermesV1Enabled=false to android/gradle.properties and configure the app to build React Native from source. These overrides will revert the engine to Hermes 0.15.0, but be aware that you may lose the performance improvements of Hermes V1 and will experience longer build times.

What are the benefits of precompiled iOS binaries by default?

Starting with React Native 0.84, precompiled .xcframework binaries for iOS are downloaded and used automatically during pod install. Previously an opt-in feature, this change eliminates the need to compile React Native core from source on every clean build, resulting in significantly faster build times—especially for CI environments and developers who frequently do clean builds. The binary is fetched from a remote server and integrated directly, so you no longer wait for the C++ compilation steps. There is no change to your app’s runtime behavior; the precompiled binaries are identical to what would have been built from source. If you need to build from source (for example, to opt out of Hermes V1), you can disable the feature by setting RCT_USE_PREBUILT_RNCORE=0 during pod installation. Overall, this streamlined process saves time without sacrificing flexibility.

What legacy architecture components have been removed?

React Native 0.84 continues the gradual removal of Legacy Architecture code that began with the New Architecture becoming the only runtime option in 0.82. On iOS, the experimental RCT_REMOVE_LEGACY_ARCH flag introduced in 0.83 is now enabled by default, meaning Legacy Architecture classes are compiled out of your iOS builds. This reduces both build time and app size because the legacy code—which is no longer used by apps on the New Architecture—is simply not included. The removal follows the RFC roadmap; future releases will remove additional legacy pieces from both iOS and Android. If your app is already on the New Architecture, you should expect no breakages; this is a cleanup step that makes the codebase leaner and faster to build. Developers still using the Legacy Architecture should migrate to the New Architecture (see the official guide) before upgrading to 0.84.

What is the new Node.js minimum requirement, and why does it matter?

React Native 0.84 now requires Node.js 22 or later. This update aligns with the latest LTS release and ensures that React Native tooling benefits from modern JavaScript features, improved performance, and security patches. Node.js 22 introduces better ECMAScript module support, a larger HTTP parser, and various V8 enhancements that streamline development. If your environment runs an older Node.js version, you will need to upgrade before installing or updating to React Native 0.84. You can check your current version with node --version. Using Node.js 22 also improves compatibility with the rest of the React Native ecosystem, which is progressively dropping support for older Node.js releases. Upgrading Node.js is typically straightforward and can be done via a version manager like nvm or by downloading the installer from the official Node.js website.

Will my existing app need any code changes to upgrade to 0.84?

For most apps already on the New Architecture and using Hermes, upgrading to React Native 0.84 requires no code changes. The shift to Hermes V1 is automatic, and the precompiled binaries are handled transparently during pod installation. The removal of Legacy Architecture only affects code that is no longer present in the build, so your existing New Architecture code remains unchanged. However, if your app still uses any Legacy Architecture components—such as old native modules that haven’t been migrated—you may encounter build errors or runtime issues. In that case, you should first migrate those modules to the New Architecture (using the codegen and Turbo Modules patterns). Also, ensure your development environment meets the Node.js 22 requirement. For a smooth upgrade, follow the official React Native upgrade helper and test thoroughly. The release is designed to be backward-compatible for modern apps, but always review the changelog for any edge cases.

Tags:

Recommended

Discover More

Fifth Circuit Restricts Mifepristone Access: In-Person Dispensing Only, Mailing BannedOpenAI Launches Codex Chrome Extension for Signed-In Web AccessGrafana Unveils Terminal-First CLI for Observability: gcx Targets Agentic Coding Blind SpotsHow to Implement Shared Design Leadership Without ConfusionCrypto Market Turmoil and Traditional Finance Integration: Key Questions Answered