React Native 0.82 - A New Era
Key Points
- New Architecture is now the only architecture
- Experimental, opt-in Hermes V1 (build from source)
- React 19.1.1 + DOM-like Node APIs on refs
Summary
React Native 0.82 is the first release that runs entirely on the New Architecture. Legacy-architecture toggles are ignored and removal of Legacy classes is planned for future releases. This release also ships an experimental, opt-in Hermes V1 (requires building React Native from source), upgrades React to 19.1.1 (owner stacks and Suspense fixes), introduces DOM-like Node APIs on refs, a debugOptimized Android build type, and canary Web Performance APIs. Several breaking-behavior changes (notably uncaught promise reporting) may surface existing issues after upgrade.
Key Points
- New Architecture only:
newArchEnabled=falseand similar flags are ignored; interop layers are kept for now and core Legacy APIs are not yet removed in 0.82 but removal will begin in the next release. - Migration path: migrate to React Native 0.81 or Expo SDK 54 (last versions that allow Legacy arch), enable the New Architecture, verify your app, then upgrade to 0.82. If blocked by third-party libs, contact maintainers; file issues for core bugs.
- Experimental Hermes V1 (opt-in): requires building RN from source and pinning the experimental
hermes-compiler(250829098.0.1). Enable on Android withhermesV1Enabled=trueinandroid/gradle.propertiesand required substitutions inandroid/settings.gradle. Enable on iOS withRCT_HERMES_V1_ENABLED=1 bundle exec pod install. Do not use precompiled RN builds when testing Hermes V1. - React 19.1.1: owner stacks fully supported (no longer broken by
@babel/plugin-transform-function-name), anduseDeferredValue/startTransitionnow behave reliably with Suspense on native. - DOM Node APIs: refs now expose a subset of DOM-like methods (
parentNode,children,getBoundingClientRect,ownerDocument, etc.) while keeping legacy methods likemeasure. - debugOptimized build type (Android): new development variant improves animation and rendering performance; run with
npx react-native run-android --mode debugOptimizedornpx expo run:android --variant debugOptimized. - Breaking changes to watch: uncaught promise rejections now trigger
console.error(you may see a surge of errors after upgrading);Appearance.setColorScheme()no longer acceptsnull/undefined—use'unspecified'; avoid relying on private APIs likeReactNativeFeatureFlags.
How to try Hermes V1 (short checklist)
- Pin experimental
hermes-compilerin your package manager (resolutions/overrides) to250829098.0.1. - Build RN from source (edit
android/settings.gradlesubstitutions and avoidRCT_USE_PREBUILT_RNCORE). - Enable
hermesV1Enabled=trueinandroid/gradle.propertiesfor Android. - For iOS: run
RCT_HERMES_V1_ENABLED=1 bundle exec pod installand avoid prebuilt RN core. - Verify at runtime with
HermesInternal.getRuntimeProperties()['OSS Release Version']— should report250829098.0.1.
Actionable recommendations for engineers
- If you haven’t migrated, move to RN 0.81 / Expo SDK 54, enable New Architecture, test thoroughly, then upgrade to 0.82.
- Audit third-party native modules for New Architecture compatibility and contact maintainers if necessary.
- Prepare your error-monitoring to handle a possible spike from newly reported uncaught promise rejections.
- Try
debugOptimizedfor faster development iterations on Android if you don’t need native C++ debugging.
References
- RFC0929 for Legacy Architecture removal details
- Hermes V1 experimental version:
250829098.0.1