Shopify’s Return to Native: What AI Changes for React Native

Theo Browne weighs Shopify’s move to Swift and Kotlin against over-the-air updates, tooling, platform limitations and his own AI-assisted port.

TBTheo BrowneVortrag · T3
Kanal
Theo - t3․gg
Veröffentlicht
14. Sept. 2026
Video
1:02:53
Lesezeit
10 Min.
Folien
8
Original
Englisch
Auf YouTube öffnen
Beim Scrollen schrumpft das Video in die rechte untere Ecke und läuft weiter. Untertitel folgen Ihrer Lesesprache.
LesespracheIn 2 Sprachen verfügbar
Diesen Artikel gibt es noch nicht auf Deutsch, daher wird das Original (Englisch) angezeigt.
ZUSAMMENFASSUNG

In 30 Sekunden

Theo Browne examines Shopify’s announced move from React Native to native mobile development. He recounts the company’s stated rationale and migration process, argues that over-the-air updates and Expo tooling remain important, and describes both React Native’s drawbacks and his experience porting an app with agents. His claims about company decisions and Meta staffing are presented as his perspective, and his personal experiments do not establish a general performance ranking.

  1. 1Shopify’s rationaleThe company reports that agents reduced the effort of building and maintaining features across native platforms.
  2. 2Checkpoints over one-shot generationShopify describes Helix as a staged process with tests, adversarial reviews and human approval.
  3. 3Over-the-air updatesTheo values delivering eligible JavaScript changes without a full native app release, subject to platform policies and compatibility.
  4. 4A comparison gapTheo asks how the old React Native architecture, new architecture and a native rewrite would compare under comparable conditions.
  5. 5Theo’s own portHis agent-built prototypes show both improvements and drawbacks for his particular app.
  6. 6Ecosystem concernsTheo expresses concerns about Meta’s investment and staffing; the video does not independently establish the full state of the team.

Das Wichtigste

  1. Shopify says coding agents changed the economics of maintaining separate native apps, while acknowledging the remaining two-platform cost.
  2. React Native and Expo can simplify parts of the development and update workflow, subject to platform rules and native-code constraints.
  3. A rewrite changes multiple factors at once, so its performance results do not isolate framework effects.
  4. Agents can assist migration, but Shopify describes checkpoints, tests, adversarial review and human approval rather than a one-shot rewrite.
  5. Native interfaces have their own tooling and usability tradeoffs; test real behavior on each platform.
  6. Theo’s model, staffing and organizational interpretations are personal assessments, not verified general conclusions.
VOLLTEXT

Den bearbeiteten Text nach Kapiteln lesen

Nur das Transkript
01

Shopify’s decision

Theo introduces Shopify’s switch and reads the company’s rationale, plans for libraries and migration. He describes its staged AI-assisted workflow and critiques its tooling choices.

Shopify’s move back from React Native to native mobile development is a big change for an ecosystem it helped build. I have defended React Native for years and have recently worked on both React Native and native apps. I want to examine the company’s reasons, the benefits it may be giving up, and what agents change.

Shopify says its 2020 move to React Native succeeded: teams shared features, brought in developers without mobile backgrounds and reduced the work of keeping platforms in sync. It still considers the framework excellent. The new question is whether better coding agents have changed the cost of building separately in Swift and Kotlin.

I think the company’s explanation emphasizes cross-platform code sharing more than some other benefits I value. Shopify says it spent significant effort on performance, framework foundations and dependency upgrades, but those costs were previously worth the benefits. It revisited the decision after its assumptions changed.

Shopify experimented by rebuilding core parts of its apps using agents. It says agents could use one platform as a reference for the other and help developers contribute outside their primary stack. Separate native apps still require separate maintenance; the company believes the implementation and parity work is no longer as decisive as before.

Shopify’s stated rationale
FOLIE 1 / 8Shopify’s stated rationaleThe company describes agent-assisted implementation and acknowledges the cost of maintaining two platforms.

The company also values closer access to platform capabilities and first-party tooling. I do not think this establishes that native is always better. Different teams have different dependencies, update needs and expertise, and Shopify’s internal setup is part of its particular decision.

The transition also affects libraries used by the community. Shopify says React Native Skia will move to a new home and name under its maintainer, with the old repository archived after the transition. It plans critical compatibility fixes for FlashList while discussing long-term stewardship, and intends to archive Restyle.

Library stewardship and migration
FOLIE 2 / 8Library stewardship and migrationShopify outlines plans for its libraries and discusses gradual migration versus a rebuild.

For large apps Shopify considered incremental migration versus a fresh rebuild. It chose a greenfield approach based on its prototypes and the advantages of a clean start. The company reports that Shop went from proof of concept to a rebuilt App Store release in twelve weeks; another larger Shopify app migration was underway.

Shopify says simply asking an LLM to recreate a feature in one shot produced unmaintainable code. Its Helix process instead proposes small checkpoints for each screen. Each checkpoint must match the running app through tests and visual review, pass two adversarial reviews and receive human approval before the next step.

Helix checkpoints
FOLIE 3 / 8Helix checkpointsThe company describes tests, visual review, adversarial review and human approval at each checkpoint.

I dislike parts of this approach and think teams can overvalue their existing implementation. That is my interpretation, not evidence of why Shopify chose it. Their process makes clear that agents do not remove the need to verify behavior and manage migration risk.

The company found simulator interaction slow and brittle, even with hot reloading. It describes separating business logic from the UI and providing a command-line interface so agents can inspect state and exercise behavior without always controlling a simulator. I think this is overengineered for their apps, but that is a judgment about a specific design.

Headless development interface
FOLIE 4 / 8Headless development interfaceShopify describes separating business logic and providing a CLI for agent iteration.

Shopify thanks Meta, Software Mansion and its contributors for React Native’s development. The ecosystem’s investment is part of why the framework became useful in the first place. That matters when considering both the value of the platform and the implications of a large contributor changing direction.

02

Over-the-air updates and Expo

He argues that update distribution and development tooling are important React Native benefits. Platform rules and compatibility limit what updates can safely do.

I think the discussion underplays over-the-air updates. In a React Native app, an eligible JavaScript bundle can be updated without replacing the native binary. That can help teams deliver compatible fixes to users who do not immediately install app-store updates. It does not change native code and remains subject to platform policies and compatibility requirements.

Imagine a UI change that works on your test phones but is clipped on a smaller screen. A native fix may require another build, review and rollout, while users continue running older versions. At Twitch, I observed that many users were several releases behind; that was a particular app and period, not a universal update rate.

My analogy is a kitchen: native components do the cooking, while a JavaScript layer supplies instructions. Replacing compatible instructions can change behavior without swapping the underlying native code. The analogy simplifies the architecture, but it explains why I value the distribution flexibility.

I describe using updates for small fixes or switching an existing experience on and off. Store policies govern what is allowed, and not every change can be delivered over the air; native dependencies, binary compatibility and user update behavior still matter. Teams should check current platform rules rather than assume every feature can bypass review.

Expo provides build, update and development tooling around React Native. I compare it to a platform that makes the framework easier to use. Shopify’s degree of Expo adoption is discussed in the video as an inference from the article and conversation, not something I establish comprehensively.

My native iOS development setup requires signing and permissions for some features. I maintain separate configurations so I can test basic UI changes without reproducing every entitlement. With a suitable prebuilt React Native development client, teammates can iterate on JavaScript more easily, although changes to native code still need an appropriate build.

I also value Expo’s simulator and web support for some agent-driven iteration. A web build may help test shared logic and UI, but it is not a substitute for testing platform-specific behavior on the target device. I think Shopify may have missed some of these benefits, though its needs and integration costs could differ.

03

Real tradeoffs and Shopify’s context

He discusses dependencies, upgrades, native features and interpretation of performance comparisons. He then reads and reconsiders an exchange about Shopify leadership.

React Native has real drawbacks. Dependencies that contain native components can create difficult build and linking problems, especially across platform tooling. I am frustrated by packaging and the way upgrades can break, even when the JavaScript side looks straightforward.

People often cite application size. In the Shopify example I discuss, the rebuilt native app is not materially smaller; that single comparison cannot prove that size is irrelevant in all apps. Assets, localization, dependencies and the fact of a rewrite can all influence the result.

Shop startup-time comparison
FOLIE 5 / 8Shop startup-time comparisonThe chart compares the particular native and React Native implementations; it does not isolate every variable.

There are also programming pitfalls. Poorly handled effects or rendering can harm a mobile experience, and a framework’s accessibility to newcomers does not guarantee a good app. I make a broad claim about average developer skill in the video; it is my opinion, not a supported measurement.

React Native’s architectural changes and dependency upgrades can be disruptive, particularly when an app has substantial custom native integrations. I describe my own difficult upgrade experiences. Depending on Meta or a library to expose new platform features can also delay access, though teams can write native integrations themselves.

I do not treat general performance as an automatic loss for React Native. Background execution is one example with real platform constraints: JavaScript may not keep running when an iOS app sleeps, so some work needs native support and must still obey operating-system limits. The framework and native code can coexist.

Shopify says its native exploration coincided with React Native’s new architecture. The team had to weigh migrating existing native integrations to that architecture against a native rewrite. I think it would be useful to compare the old architecture, the new architecture and native implementations under matched conditions.

The new architecture decision
FOLIE 6 / 8The new architecture decisionShopify says adopting the new architecture would require revisiting its native integrations and rendering.

The new architecture improves how JavaScript and native components interact and offers other layout improvements. I expect it could change the performance comparison, but my video does not supply a controlled three-way benchmark. Shopify’s migration burden and app-specific requirements also matter.

I then discuss a public allegation about how Shopify CEO Tobi Lütke makes technical decisions. This is a disputed account, not something I establish from firsthand evidence. Lütke responds that the cited internal-tool situation involved an overly complicated architecture and that teams sometimes ask him to make a difficult call.

Lütke’s response
FOLIE 7 / 8Lütke’s responseThe displayed response disputes aspects of an earlier account and describes his view of technical decisions.

I agree that a small internal tool can be burdened by unnecessary layers. At Twitch, however, we also had reasons to share technologies between internal and public systems, including moving engineers and testing ideas. The right architecture depends on the team and the work rather than a single rule.

Lütke says he uses an internal podcast to explain decisions and teach the reasoning behind them. After reading his response, I am more sympathetic to the idea that a leader can help a team make a difficult decision. His response disputes details of the original allegation; neither account is independently verified here.

04

Porting his own application

Theo describes agent-built UIKit and SwiftUI versions, navigation bugs and simulator-based work. His experience is specific to his application.

My own native experiment began when I had model access and spare tokens but limited time. T3 Code already had a React Native mobile app. I asked an agent to build a native version and was surprised when a working prototype appeared in roughly two hours.

Later I repeated the experiment with computer use and a different configuration. I mistakenly asked for AppKit, which is for macOS; one attempt inferred UIKit, while another produced SwiftUI. The result was two iOS prototypes alongside the React Native app, each produced in under three hours according to my account.

The native builds felt better to me in some navigation and background-data situations, but SwiftUI lists felt worse. Those are observations about early implementations of my app, not proof that either framework is inherently faster in all cases. The React Native version also had an excellent scrolling implementation.

The navigation story exposed an important usability detail. I swipe back from the left edge, while some teammates start closer to the middle. A stale drawer gesture in our React Native app intercepted a small area at the edge, so different people encountered different behavior. We found and removed that bug.

A navigation gesture
FOLIE 8 / 8A navigation gestureTheo sketches how users may begin a back swipe in different parts of the screen.

The SwiftUI version had a different issue: in my setup, the default navigation gesture did not cover the area a tester expected. I describe seeing broader swipe behavior in some built-in apps and ultimately rebuilding navigation to support the gestures our users tried. My experience does not establish every platform API’s behavior across versions.

AI made implementing the change easier, but it did not replace the work of noticing and understanding the interaction. It took me time to discover the different gestures and test them with another person. Platform-native components do not automatically guarantee that an app matches every user’s expectations.

I have found that an agent with source code, a simulator and an existing implementation can often produce a useful port and fix issues after feedback. I speculate about why Shopify’s experience differed, including model and tooling choices, but I do not know its internal causes. My app is also less complex than Shop.

I show an ongoing SwiftUI branch that an agent updated from changes in the React Native app. It reports porting several features and using a simulator. I use that build personally, but have not reviewed every line; one successful personal workflow does not establish maintainability or parity for all apps.

I also discuss Legend List, which our team uses for long lists in React Native and on the web. Its JavaScript implementation made a web version possible, and it performs well in our experience. A library author’s favorable benchmark claims should be evaluated against the actual app and workload.

05

The React Native ecosystem

He discusses performance-focused libraries, Meta’s investment and his concern about the team’s future. He closes by recommending testing the actual app on both platforms.

React Native requires substantial work to expose platform functionality through a JavaScript-oriented interface. I praise the native engineers who built those integrations and argue that teams have benefited from their expertise. My estimates of historical team sizes are based on my understanding, not verified headcount data in the video.

I think coding agents can narrow some of the expertise gap that once pushed teams toward a shared framework. That does not eliminate the value of React Native’s development workflow, updates or well-tested libraries, and an agent-generated native app still needs maintenance and review.

I express concern that Meta’s investment and staffing around React and React Native have changed, citing departures and my understanding of the organization. The video does not establish the team’s full current staffing, plans or quality. My predictions about slower future maintenance are speculation, not confirmed outcomes.

I see Shopify’s move as an experiment worth watching, much as React Native was once a major bet on a different way to build mobile apps. A company’s decision reflects its own tools, people and priorities. It should prompt others to examine their assumptions, not automatically copy the choice.

For me React Native was never simply ‘write once, run everywhere.’ Knowing React can help a team learn and work across platforms, but understanding mobile behavior still matters. Whether the app is native or cross-platform, test it on both iOS and Android and pay attention to how real users navigate it.

Mehr aus diesem Kanal

5 Folien36:07EN
Theo - t3․gg· 27. Okt. 2026Theo on Token Costs, Coding Agents, and the Price of AI CapabilityTheo Browne · Ping LabsA viral estimate of Lauren's AI spending prompts a closer look at cache pricing, benchmarks, and the changing work of coding agents.AI cost & performanceCoding-AgentenInference+1
5 Folien30:37EN
Theo - t3․gg· 26. Okt. 2026Theo’s Three Skills for Reviewing and Shipping with Coding AgentsTheo Browne · Ping LabsHow sol-loop, full-send and full-stop encode review, verification and different levels of merge authority.Agent skillsCoding-AgentenCode review & verification+2
2 Folien0:43EN
Theo - t3․gg· 23. Okt. 2026Theo Distinguishes Security Vulnerabilities from Active AttacksTheo Browne · Ping LabsA short explanation of why disclosed software flaws and reported attacks are different kinds of security news.CybersecuritySoftware engineering
6 Folien29:22EN
Theo - t3․gg· 22. Okt. 2026Theo on Security Vulnerabilities, Stolen API Keys and AITheo Browne · Ping LabsA look at the gap between vulnerability disclosure and patching, and a speculative account of why stolen inference keys may be valuable.CybersecurityAI securitySoftware engineering+1
4 Folien31:13EN
Theo - t3․gg· 20. Okt. 2026Theo on Why Smarter Models Help More Than DevelopersTheo Browne · Ping LabsFrom game modifications to compiler experiments, Theo revisits his assumptions about who benefits from more capable AI.Coding-AgentenDeveloper productivityHuman-AI Collaboration+1
4 Folien31:47EN
Theo - t3․gg· 18. Okt. 2026Theo on Asking Agents for Outcomes and Building the Tools They NeedTheo Browne · Ping LabsA tool-call report, a troubleshooting playbook and connected data show how prompting can reshape product engineering.Prompting & in-context learningCoding-AgentenAgent Engineering+2