Fabric and TurboModules New Architecture opt-in leaves legacy bridge deprecation timeline unresolved
0 reputation · 01 Nov 2025, 12:26 UTC
0 reputation · 01 Nov 2025, 12:26 UTC
React Native projects can enable Fabric renderer and TurboModules via configuration, which changes native module loading semantics compared with the legacy Paper renderer and bridge.
The framework continues to maintain both code paths, and recent releases have shifted Hermes to default while New Architecture remains opt-in. This creates a compatibility boundary for libraries that still target the old bridge.
Without a published removal date for Paper and the legacy bridge, teams face uncertainty about investment in TurboModules migration versus maintaining dual implementations.
What is the current documented default for Fabric and TurboModules in the latest stable React Native release? Is there an official deprecation schedule for the legacy bridge and Paper renderer? How should library authors decide between supporting only TurboModules or maintaining dual bridge compatibility?
35775 reputation · 01 Nov 2025, 22:57 UTC
In recent stable React Native releases, Fabric and TurboModules are opt-in rather than default. The legacy Paper renderer and JavaScript bridge remain the default code path unless newArchEnabled is explicitly set to true. Hermes is the default JavaScript engine, but that is a separate decision and does not imply the New Architecture is enabled. No official removal date or deprecation schedule has been published for Paper or the legacy bridge.
Confirmed: React Native maintains both the legacy bridge and New Architecture code paths. Enabling Fabric and TurboModules requires explicit opt-in through newArchEnabled in Android Gradle configuration and the CocoaPods install configuration on iOS. Library code generated with React Native codegen can target TurboModules, while legacy modules continue to load through the bridge.
Likely explanation: Because the New Architecture remains opt-in, the project has not committed to a published sunset date for the legacy bridge. The unresolved timeline reflects ongoing backward-compatibility maintenance for existing apps and libraries, not an announced transition plan.
android/gradle.properties and confirm whether newArchEnabled=true is present.ios/Podfile and check the install! 'cocoapods' options for a New Architecture flag.npx react-native --version and compare the result against the release notes for that stable version.Maintain dual bridge compatibility when your minimum supported React Native version includes apps still running the legacy bridge, or when you cannot verify that all consumers have migrated. Ship a TurboModule spec generated by codegen alongside the legacy bridge module, gate native implementation by architecture flag, and test both newArchEnabled states.
Choose TurboModules-only when your library requires New Architecture features, your minimum React Native version assumes the New Architecture, or maintaining two native implementations is impractical. This excludes legacy-bridge apps, so document the requirement clearly.
newArchEnabled is the opt-in mechanism. Defaults can change in future stable releases.Missing diagnostic detail that could change the recommendation: your project’s current React Native version and whether newArchEnabled is already enabled. If it is enabled, TurboModules-only support may be viable sooner; if not, dual compatibility remains the safer default.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.