By 16:30 UTC on September 10, Shopify's decision to move its mobile apps back to Swift and Kotlin had drawn 531 points and 377 comments on Hacker News. The number explains the attention, but the immediate consequence sits outside Shopify: FlashList, a Shopify library with about two million weekly downloads, now needs a long-term steward. React Native Skia is heading for a fork and a new name, while Restyle is due to be archived after 2026. A company stack decision has become a maintenance question for thousands of other apps, according to Shopify's announcement.
Shopify says coding agents made the reversal economically possible. A core group of six engineers built the native foundations and main user journeys, with feature teams joining midway through the work. Shop moved from proof of concept to app-store release in 12 weeks. Its migration report credits the native versions with cold-start reductions of 23% on iOS and 50% on Android, plus a rise in session stability from more than 99.5% to more than 99.95%. Those are Shopify's measurements of its own apps, rather than an independent comparison of the two approaches.
The 2020 case for shared code worked
This reversal is striking because Shopify did not describe its React Native bet as a failure. When the company committed to the framework in 2020, it said 71% of its buyers had purchased on mobile in the third quarter of 2019. Early projects reported 95% shared code for Arrive, which later became Shop, and 99% for Compass. The Arrive team also reported being twice as productive as it had been with native development, even when counting only one mobile platform, in Shopify's original decision memo.
Five years later, Shopify said React Native had delivered the promised productivity gains and removed feature parity as a recurring problem. Its apps were recording screen loads below 500 milliseconds at the 75th percentile and more than 99.9% crash-free sessions, according to a January 2025 retrospective. The company still says its React Native apps are fast. Its new argument is about engineering cost: agents can now translate and maintain two native implementations cheaply enough that sharing the implementation carries less weight.
That distinction matters for teams reading Shopify's move as a benchmark. React Native had let web developers contribute to mobile and kept iOS and Android close through one codebase. Shopify now believes shared specifications, tests and review checkpoints can preserve much of that alignment while Swift and Kotlin provide direct access to each platform and its first-party tools. The company also concedes that native development still produces two codebases and two maintenance tracks in its September 2026 explanation.
A rewrite built around checkpoints
The first experiment was deliberately small. One engineer spent a week using coding agents to recreate as much of Shop as possible in SwiftUI. After that week, the prototype reproduced enough screens, interactions and flows to justify a full migration, though production work remained. Agents worked best when they could inspect the existing React Native implementation, which gave them defined behavior rather than an open-ended product brief, the migration team wrote.
Shopify then chose a clean rebuild instead of replacing parts of the app gradually. Six engineers established the native foundations and main user journeys before feature teams joined to check their own areas and edge cases. The work had to preserve sign-ins, push notifications and analytics events so that an ordinary update would not break sessions or downstream systems. Some screens were retired or simplified during the rewrite, a detail in the migration account that complicates any claim of a perfectly identical framework comparison.
A one-shot conversion was explicitly rejected after Shopify found that it produced large amounts of code the team could not maintain or ship. Its internal Helix system instead breaks one screen into small, ordered checkpoints. Each slice needs tests, a visual match against the running app, reviews from two adversarial coding agents and a human approval before the next commit. Review feedback carries forward through the migration, according to the company's description of Helix.
The Shop team also made approval state harder to blur. A reusable extension for the Pi coding agent had specialist agents inspect the old source, document behavior and prepare separate platform plans. Human acceptance was tied to a hash of the plan, so editing that plan invalidated the earlier approval. Shopify says its source review covered the interface, state, navigation, analytics, accessibility and data behavior in the technical migration report.
Testing speed shaped the architecture too. Shopify says agents could change code in seconds, then spend minutes operating simulators through screenshots or accessibility trees. Its response was to separate business logic from the interface, make that logic runnable headlessly on a desktop and expose it through a command-line interface. A second internal tool, Tardis, gives agents structured access to app events, logs and state while letting them issue commands to a running app, as described across the stack announcement and Shop migration report.
That may be the more transferable lesson. Shopify did not obtain a 12-week rewrite by asking a model to translate JavaScript into Swift and Kotlin in one pass. It built an environment where plans expire when changed, tests block progress, visual output can be compared and the app exposes machine-readable state. The company's own failed one-shot attempts and its continued reliance on native specialists are recorded in the two engineering posts.
The performance gain has qualifications
Shopify measured an iOS cold start of 2,466 milliseconds in the native Shop app, down from 3,200 milliseconds in React Native. Android fell from 4,433 to 2,233 milliseconds. The Android release package shrank by 109 MB, or 37.2%, and its release build time dropped by about 75%. On iOS, however, the package grew by 1 MB and release build time stayed roughly unchanged, according to the published comparison.
Session stability moved from more than 99.5% to more than 99.95%, which Shopify describes as a tenfold reduction in sessions that crash. Its native Android feed also reached 120 frames per second on a Pixel device in the company's test. These figures cover one migrated product under Shopify's test conditions. They do not isolate the language and framework from the effects of removing screens, revising architecture or rebuilding old code, all changes acknowledged in the same company report.
The earlier React Native figures measured a different thing: screen loads, rather than launch time, and crash-free sessions across Shopify's apps. They showed that Shopify had already made the framework perform well at scale by January 2025. The new numbers support a narrower conclusion. For Shop, a native rebuild produced faster starts and a smaller Android binary while agents reduced the labor that had once made separate platform code unattractive, based on Shopify's 2025 retrospective and 2026 test results.
The open-source bill comes due
FlashList is the largest dependency affected by the change. Shopify says the high-performance list library receives about two million downloads each week. It will keep fixing compatibility-breaking problems while it talks with several companies about permanent stewardship. The promise is narrower than normal product development, and the announcement gives no named successor or transfer date.
React Native Skia has a more defined route out. Shopify plans to fund it through the end of 2026, after which maintainer William Candillon will continue the work through a fork published under a new name. The original repository will be archived once that move is complete. Restyle will also keep working through the end of 2026, but Shopify plans to stop maintaining and archive it unless another team takes over, according to the library transition plan.
These dates turn an internal architecture story into a dependency-planning task. Teams using FlashList still have compatibility fixes promised, but no permanent home. React Native Skia users will eventually need to track a renamed fork, and Restyle users must decide whether a community handover is credible before Shopify's maintenance ends. The terms come directly from Shopify's post; neither that post nor the repository announcements promise a drop-in successor maintained by Shopify.
What Shopify's decision does and does not show
Shopify had unusually favorable material for an agent-assisted rewrite: a working implementation to inspect, measured behavior to preserve, native engineers to review the output and internal tools that could interrogate the running apps. Shop was also approaching a React Native New Architecture migration that would already have required changes to rendering, native modules and the boundary between shared and platform code. Those conditions are part of the team's account of why it tested native code.
Other teams will face a different equation. An app with a small mobile staff may still save more through shared implementation than agents can recover through translation and review. A product that depends heavily on platform APIs may value Swift and Kotlin sooner. Shopify's evidence supports its own choice, while its 2020 results remain evidence that React Native can cut duplicate work and its 2026 statement says the framework can produce fast apps.
The next evidence will arrive in pieces. Shop is already native, while Shopify says its larger merchant app, with more than 300 screens plus widgets, an Apple Watch app and Siri Shortcuts, is due later in 2026. Watch whether that migration matches Shop's speed and stability figures, who accepts stewardship of FlashList, and how smoothly React Native Skia moves to its renamed fork. Those outcomes will say more than the initial 531-point reaction about whether Shopify changed only its own cost model or found a pattern other large mobile teams can repeat, based on the published migration schedule.