❄️ Freezing the Legacy Architecture #290
Replies: 2 comments 1 reply
-
@cipolleschi WRT to this
Could you provide some clarity on why it's wrong for us to lean on the interop layer indefinitely? As I understand it the interop layer hasn't been deprecated so as a library author I don't have much incentive to address this. I've authored some very traditional plugins that aren't doing anything crazy; just pass serialized stuff across the bridge. |
Beta Was this translation helpful? Give feedback.
-
Link to your talk about this announcement at App.js Conf 2025: https://www.youtube.com/live/K2JTTKpptGs?feature=shared&t=9009 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
tl;dr: Starting on Monday, June 2nd, we are freezing the legacy architecture codebase: we will no longer accept PRs against the legacy architecture, nor will we develop new features for it.
Starting from Monday, June 2nd, we will officially freeze the Legacy Architecture of React Native.
The Legacy Architecture has served us well until now.
However, in October 2024, we promoted the New Architecture to stable in React Native 0.76 for all projects. Since then, we’ve fixed countless bugs and helped numerous developers fully onboard to the New Architecture.
In April 2025, with the release of Expo SDK 53, Expo also began recommending the New Architecture for every project.
Maintaining both the Legacy and New Architectures has a significant cost for us. We want to focus our development efforts on building new features and capabilities for the New Architecture, and we can’t continue supporting and developing both architectures for a longer period of time.
For this reason, we’ve now decided to “freeze” the Legacy Architecture codebase.
What Exactly Does “Freezing” Mean?
When we say that we are freezing the Legacy Architecture, we mean a set of process changes in React Native:
Stop Working on the Legacy Architecture
Most React Native development in the past months has already been New Architecture only.
In some cases, however, we were backporting new features or fixes from the New Architecture to the Legacy Architecture, when it made sense and when the fixes affected a large number of users.
Starting from Monday, June 2nd, we will no longer backport those features or fixes to the Legacy Architecture. All development on React Native will now be New Architecture only.
You can still use the Legacy Architecture today, but you won’t benefit from the bug fixes and new features that we’ll be developing for the New Architecture only.
Stop Accepting PRs Against the Legacy Architecture
We are still receiving bug fixes from OSS that address behaviors in the Legacy Architecture. We currently have no way to test them internally: all our React Native apps, internal and external, have already migrated to the New Architecture.
This means that we don’t have any test bed for those fixes and, therefore, by freezing the Legacy Architecture, we will also stop accepting PRs related to it. All PRs we receive about the Legacy Architecture will be closed.
We understand that some apps can’t migrate to the New Architecture right away, so we have two exceptions to this general rule:
We believe that by accepting these fixes, we can ensure that the Legacy Architecture keeps working while the community finalizes the migration to the New Architecture.
For Android, we will not accept PRs touching these paths:
@LegacyArchitecture
For iOS, we will not accept PRs touching these paths:
packages/react-native/React/Views
Stop Testing the Legacy Architecture During Releases
In our release process for React Native, we usually run a set of manual and end-to-end tests to ensure that the community can successfully create new applications with the new version of React Native. We perform these tests using both architectures.
Starting today, we will stop testing the Legacy Architecture during releases. This means that, starting from React Native 0.81, if you want to create a new project and you opt out of the New Architecture, you’ll be on your own. The Legacy Architecture will be tested in a best effort way, and we won’t ensure the same level of quality as the New Architecture.
How Do I Know Whether My App Will Work with the New Architecture?
Starting from React Native 0.80, we are adding warnings and logs that should guide you away from the Legacy Architecture.
We have identified a set of classes and methods that will not work properly with the New Architecture, and when your app uses them, you’ll see a warning popping up in the app while you are developing it.
By opening the React Native Dev Tools, you’ll be able to see exactly which module is invoking which method.
To prepare for the future, we suggest that you start looking into those Native Modules and Native Components and begin planning a migration:
Beta Was this translation helpful? Give feedback.
All reactions