React Native in 2026<br>Presented at ForwardJS Ottawa JavaScript and TypeScript meetup on July 26, 2026.
If you tried React Native in 2021 or earlier, you used the old Bridge architecture. If you tried it in 2024 or later, you used the New Architecture.
Many developers still judge React Native by the old Bridge architecture. The framework they remember is not the framework teams ship today.
Who Is Shipping on React Native?#
Many of the most popular mobile apps run on React Native.
Amazon: Amazon Shopping, Kindle
Meta: Facebook, Instagram
Microsoft: Office, Outlook, Teams
Shopify: Shop, Shopify Admin
Coinbase, Discord, and WordPress
These teams choose React Native because it lets them share product code and React skills across iOS and Android while still shipping native interfaces.
What Is React Native?#
React Native is a framework for building native applications with React. It runs your React and TypeScript code in a JavaScript engine on the device, then renders real platform views. A becomes a UIKit view on iOS or an Android view on Android, not an HTML inside a WebView.
Your components, hooks, state management, and business logic stay in ordinary React. The rendering target changes from the browser to the operating system's UI toolkit.
Its design principle is "learn once, write anywhere." You share skills and a large part of the application core while each platform keeps its own interaction patterns, accessibility behavior, and visual conventions. When the product needs something specific, you can branch by platform or drop into Swift and Kotlin.
For a React and TypeScript team, React Native sits between two separate native codebases and a web wrapper: shared language, shared logic, largely shared UI, and native output.
The React Native People Remember#
Meta released React Native as open source in 2015. Its first architecture placed JavaScript and native code on opposite sides of an asynchronous Bridge .
JavaScript described work, serialized messages into bridge-friendly values, and queued them for native code. Native code deserialized those messages, did the work, and sent results back through the same process. The old NativeModules system also initialized modules eagerly, and the old renderer sent UI work across that same boundary.
That design let React Native ship, but it imposed three hard limits:
Every crossing required serialization and queued messages.
Layout and measurement could not call native code synchronously.
The renderer could not support React's concurrent model.
Teams also dealt with fragile upgrades, inconsistent Android behavior, abandoned packages, and weak debugging tools. Expo helped with setup, but the old "eject" workflow forced teams to take ownership of generated iOS and Android projects as soon as they needed custom native code.
These issues drove a broader backlash that peaked in 2018, when Airbnb publicly announced that it was moving away from React Native. That post captured both the technical limits and the organizational cost of running native and React Native teams in parallel. Many developers compressed that detailed write-up into a simpler memory: "React Native failed."
The Long Transition to the New Architecture#
Meta started rewriting the old Bridge architecture in 2018 while production apps kept shipping.
It took several years to roll out, but by 2024 the New Architecture had fully taken over the platform.
The transition took years because React Native had to keep working for real products through the rewrite. That constraint made the timeline long, but it also made the result more credible.
How a React Native App Works in 2026#
A modern application starts in a native iOS or Android shell. Metro bundles its TypeScript and JavaScript. Hermes, the default JavaScript engine, executes that bundle. React runs your components, hooks, and state updates.
Four key components define the New Architecture:
Hermes : the JavaScript engine
JSI : the foundation
TurboModules : native capabilities
Fabric : native UI
Hermes: the JavaScript engine#
Hermes executes the JavaScript and TypeScript bundle in a React Native app.
It is a separate engine built for React Native, not a wrapper around V8 or JavaScriptCore. Metro can ship precompiled Hermes bytecode, so the app does less parsing and compilation at launch. Hermes also targets mobile constraints such as startup time, memory use, and app size.
In the old Bridge architecture, most apps used JavaScriptCore as the default engine. Hermes later became an option, but it was not the center of the runtime story the way it is now.
The practical gains are faster startup, lower memory use, and smaller app binaries than the common JavaScriptCore setup.
JSI: the foundation#
JSI is the C++ interface between the JavaScript engine and native code. JavaScript can hold references to native host objects and call host functions without sending every interaction through the old serialized message queue.
JSI supports...