Back to AI guides

How Shopify Used AI Agents to Abandon React Native and Go Native

Stanley Ulili
Updated on September 21, 2026

In 2020, Shopify made a major bet on React Native. The company called it the future of its mobile architecture and spent the next five years moving its apps onto a shared cross-platform stack.

Then, on September 10, 2026, Shopify reversed course.

In a post titled “Native is now the future of mobile at Shopify,” the company explained that it had rebuilt the Shop app from React Native to native Swift and Kotlin. The rewrite was completed by six engineers in just 12 weeks, and the results were substantial rather than incremental.

On Android, startup time was cut in half, the app size dropped by 109 MB, and session crashes fell by 10x.

What makes the shift interesting is that Shopify did not blame React Native. Its React Native apps were already fast, stable, and proven at scale. The real reason for the change was economic.

AI coding agents have changed the cost of maintaining multiple codebases. Work that once made a shared cross-platform framework attractive can now be handled more cheaply by agents working across separate Swift and Kotlin projects. For Shopify, maintaining two native codebases became more practical than continuing to optimize one shared abstraction layer.

That makes this less a story about React Native failing and more about AI changing the economics of software architecture.

Why the calculus changed

A diagram illustrating the core concept of React Native, where a single, central codebase is used to build and deploy applications for both Android and iOS platforms simultaneously.

The original case for React Native was straightforward. Writing the same feature in Swift for iOS and Kotlin for Android meant two teams, two implementations, and two sets of bugs to fix. A shared JavaScript codebase cut that cost roughly in half. Shopify's Head of Mobile Mustafa Ali laid out the 2020 rationale as three things: stop building the same features twice, talent portability across platforms, and more time delivering value instead of chasing feature parity.

The title of the Shopify Engineering blog post, "Native is now the future of mobile at Shopify," highlighted on a dark background.

That calculus assumed human developers were doing the duplication. An AI agent doesn't experience fatigue or require a salary. Porting a feature written in Swift to Kotlin is a token cost, not a team cost. As the blog post puts it: "Since then, coding models have gotten dramatically better, and for our apps and our team, building the same feature in Swift and Kotlin no longer carries the cost it used to."

What's left on the React Native side of the ledger is overhead without offsetting benefit: the JavaScript-to-native bridge that adds a communication layer, platform-specific bugs that only manifest at the intersection of JavaScript and native code, and compromises on performance to maintain cross-platform compatibility. When AI can handle the duplication, those costs stop being worth paying.

This is distinct from Airbnb's 2018 exit from React Native, which was a reaction to the framework's technical overhead at the time. Shopify's decision is forward-looking, predicated on what AI agents make possible, not on what React Native failed to deliver.

Helix: Shopify's AI orchestration system

The naive approach to migrating a large app is to point an LLM at the React Native codebase and ask it to translate everything. Shopify calls the output of this approach "AI slop": a large, monolithic block of code that's technically functional but unmaintainable and unshippable. Helix is the system they built to avoid it.

Helix is not a code generator. It's a workflow management system for AI agents. Its central mechanism is breaking each screen migration into small, ordered checkpoints rather than attempting the whole screen at once. A checkpoint might be "create the header component," followed by "implement the product list view," followed by "add the search bar." Each checkpoint is small enough to be completed and reviewed in minutes.

The review process for each checkpoint is the critical part.

A clear, animated diagram showing the five stages of the Helix checkpoint review process: Tests, Visual review, Code review, Human, and finally, Commit.

Before a checkpoint can be committed, it passes through five gates:

Tests: The generated code must pass all unit and integration tests.

Visual review: An automated visual comparison confirms the native UI matches the original React Native screen.

Code review: An adversarial AI model reviews the generated code specifically looking for problems.

A second adversarial review: A different AI model reviews the same code from a different perspective, increasing the likelihood that issues are caught.

Human sign-off: A developer reviews the checkpoint before it merges.

Helix also learns from each review cycle, incorporating feedback to increase its autonomy as a migration progresses. The system anticipates that the AI's first attempt will be imperfect and builds refinement into the workflow rather than treating it as a failure condition.

The slow feedback loop problem

AI agents are fast at generating code, but native mobile development has a structural problem: the feedback loop is slow. Compiling and running a test on a simulator takes minutes. If an AI agent has to wait minutes to verify each change, its speed advantage largely disappears.

Shopify solved this with two architectural moves.

Decoupling business logic from UI

The entire application state is held in a data structure. The UI is a function of that state. All user interactions dispatch actions that modify the state object.

state-example.js
// The entire application state is a plain data object
let state = {
  screen: "home",
  cart: { items: 0 },
  signedIn: false
};

// Actions are dispatched to a reducer function to update the state
function reducer(currentState, action) {
  switch (action.type) {
    case 'ADD_TO_CART':
      return { ...currentState, cart: { items: currentState.cart.items + 1 } };
    case 'NAVIGATE_TO_PRODUCT':
      return { ...currentState, screen: 'product' };
    default:
      return currentState;
  }
}

A split-screen view demonstrating Shopify's decoupled architecture. On the right is a mobile app simulator, and on the left is a terminal window showing the underlying JSON state that powers the UI.

This separation means the AI agent can test the vast majority of business logic headlessly, without compiling the UI or running a simulator. It calls reducer functions with actions and asserts the resulting state. A testing cycle that previously took minutes drops to milliseconds.

CLI-driven UI testing

For the parts that must be tested visually, Shopify built a command-line interface that drives the running application directly.

An animation showing how dispatching actions from a command line updates the central JSON state object, which in turn causes the rendered UI on the mobile simulator to change.

The traditional approach uses frameworks like Apple's XCTest, which runs out-of-process, walks the accessibility tree to find UI elements, and synthesizes tap gestures. It's slow and flaky. Shopify's CLI-driven method lets the AI agent dispatch actions directly to the running app: a command like shop dispatch cart/add triggers an immediate state change and UI update. The agent can drive the full application stack, including the UI layer, without the overhead of traditional UI testing tools.

Results and ecosystem impact

The Shop app rebuild proved the approach: from proof of concept to published in both app stores in 12 weeks, with those measurable Android improvements. The main Shopify app, with 300+ screens, Apple Watch support, widgets, complications, and Siri Shortcuts, is in migration and expected to ship native later in 2026.

The React Native open-source libraries Shopify maintained are being transitioned:

FlashList (2 million weekly downloads): Shopify is in negotiations with multiple companies about long-term stewardship. The outcome matters for a large number of production apps.

React Native Skia: William Candillon, the primary maintainer, will continue development under a new name. Shopify is sponsoring through the end of 2026.

Restyle: Archived at year-end with no successor announced.

What this means for the industry

Shopify's decision is one data point, not a verdict on the framework. Meta still backs React Native actively. For smaller teams, startups, or apps where cutting-edge performance isn't the primary concern, a shared codebase may still be the right choice. Kotlin Multiplatform, which shares logic but uses native UI on each platform, may benefit from this shift as a middle path.

The more significant signal is architectural. The economic logic that made cross-platform frameworks compelling rested on the cost of human duplication. AI agents fundamentally change that equation. The official announcement and technical deep-dive are at shopify.engineering/back-to-native.

Got an article suggestion? Let us know
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.