Shopify Is Leaving React Native. We're Staying, for Now
In January 2020, Shopify's engineering blog ran a post called "React Native is the Future of Mobile at Shopify." On September 10 of this year the same blog ran "Native is now the future of mobile at Shopify." Shopify is moving its apps back to Swift on iOS and Kotlin on Android, and it says coding agents are the reason.
For six years the first post was the thing you could point to when you picked React Native and somebody senior asked whether it was a toy. Now there is a second post, pointing the other way. Coinbase, which Shopify's own 2025 retrospective had named among the companies using React Native, posted jobs on September 29 for "a greenfield rewrite of Coinbase's retail mobile app from React Native to native Swift and Kotlin, using AI-assisted code generation."
We build mobile apps in React Native and Expo, and the intro on our mobile development page says "Most Calgary businesses do not need separate Swift and Kotlin departments." So I read Shopify's posts with a stake in the outcome, and then the 957 comments under them on Hacker News.
I think Shopify made the right call for a company with Shopify's engineering budget. Most of our clients do not have that budget, and I am telling them not to copy it this year.
What Shopify Said
The post is by Mustafa Ali, who heads mobile at Shopify. The subtitle starts with the whole argument: "Coding agents changed what it costs to build mobile apps twice."
Shopify picked React Native in 2020 to stop building every feature twice and to stop chasing parity between its iPhone and Android apps, and Ali says it got what it paid for. What changed, starting in late 2025, is that agents got good enough to port features from one platform to the other and to help engineers ramp up on a language they had not used, with the two apps kept in step "through shared specifications, tests, and review checkpoints."
We are making this change because agents have reduced the advantages of sharing implementation, while the advantages of building for each platform remain.
The post gives React Native more credit than most of the coverage did. "React Native apps can be fast. Ours are." It admits the old cost is still there: "Native still means building and maintaining software on two platforms, that cost has not disappeared." And the acknowledgments open with a line I would like to see in more engineering posts: "Native is the right choice for Shopify now, but React Native was the right choice for Shopify in 2020."
The numbers are in a companion post about the Shop app, published the same day. One engineer built a SwiftUI proof of concept in a week. A core group of six then built the native foundations and the main user journeys, feature teams joined midway, and the app went from proof of concept to both stores in twelve weeks.
12 weeks
Shop app, proof of concept to both app stores
A core group of six built the foundations, with feature teams joining midway
4.4s to 2.2s
Android cold start, React Native vs native
4,433 ms down to 2,233 ms. iOS went from 3,200 ms to 2,466 ms
293 to 184 MB
Android app size
37% smaller. The iOS app went from 67 MB to 68 MB
99.95%+
Crash-free sessions after the rebuild
Up from above 99.5%, which Shopify describes as a tenfold drop in crashing sessions
The main Shopify app is next, with more than 300 screens, widgets for the home and lock screens, an Apple Watch app and Siri Shortcuts, and it is due "later this year."
How Shopify Got There
The posts spend more time on the machinery than on the results, and they start with a warning.
It's tempting to just point an LLM to the React Native codebase and try to one-shot the same features in native, but it doesn't work.
The Shop team built its own extension for the Pi coding agent and a debugging tool it calls Tardis, and still wrote that "native expertise remained essential" and that "Android and iOS must be at feature parity at all times." For the much bigger Shopify app it built a system called Helix, described in a follow-up post on September 21. By default, every checkpoint an agent produces goes through four gates in order: behavior tests run from the command line, a UI review where one model compares screenshots while another orchestrates, two adversarial reviewer agents, and an engineer who signs off. In autonomous mode Helix skips the approvals and runs on its own for hours, or overnight, leaving the committed checkpoints for someone to review.
In the Hacker News thread, an account under Ali's name left one comment: "Definitely, we invested in ramping up teams on native before going all in." Another commenter noted that Shopify has "practically infinite token spend."
Farhan Thawar, who wrote the 2020 post, told Gergely Orosz at The Pragmatic Engineer: "Basically, React, as the shared language, is now replaced by the English language, thanks to LLMs." English works fine for asking an agent for a feature. Somebody still reads what comes back, in Swift and then again in Kotlin.
Where Agents Pull Their Weight
Porting is the job agents do best. One commenter wrote that LLMs "still seem to work best at translation-shaped problems," and a finished Swift screen headed for Kotlin is about as translation-shaped as software gets. The original exists and works, and you can run the two versions side by side.
Another explained why the Shop app went so fast: "The existing app code is an unambiguous spec." New features don't come with one. They come from a product meeting, a half-finished Figma file and a ticket that says "like the other one, but for wholesale," and under Shopify's plan that fuzzy spec gets built twice.
The native camp in the thread had real arguments. One developer with fifteen years in mobile called two parallel codebases "by far the best productivity gain LLMs have to offer in this space," and said it beats debugging a framework's rendering bugs. Another had an agent rewrite a 15 to 20 screen app: "Took it about 6 hours while I slept." In the same comment they said they do not know Swift or Kotlin.
So that app runs, and the person who owns it cannot read a line of either version. I expect a lot of small businesses to be pitched exactly that rewrite over the next year.
Reading Is the Expensive Part
On a two-codebase app every feature arrives as two reviews, in two languages, and I think review is what Shopify's critics were really arguing about. Colin Breck's "I Don't Want to Read What You Didn't Write", from September 20, is mostly about machine-written design docs and pull request summaries, but his description of reviewing them fits code just as well: people "are forced to read exhaustively and consider every line, peering into the internals of a machine with the hope of establishing context."
Opusfived, a parody game that went around the same month, makes the point with a shopping cart. The opening card asks you to make the "Add to Cart" button blue without letting Claude change anything else. The fake Claude edits a shared color token, so the Cancel button turns blue too, and then sends out 23 agents to investigate the token instead of just reverting it. Eventually a cookie banner shows up that nobody asked for. Checking that a small agent change stayed small is most of the work in our own reviews, and it does not get faster when there are two codebases to check.
Alex Ewerlöf's "Coding is NOT solved" makes the business case:
Sure, creation is much cheaper, but anyone who has run software in production at scale knows that maintenance, reliability, security, scalability, etc. is the majority of the cost.
The comment under Shopify's post I agreed with most was hermitwriter's: "Feature parity isn't an implementation cost. It's a divergence cost." Agents made the second implementation cheap. Divergence is the slow drift between two apps that are supposed to match, and you pay for it in bugs that exist on one platform only, for as long as the app is alive. Same commenter, a few lines later: "If agents make software development cheaper, they make RN development cheaper too."
Expo published a post the next day that reads like a reply, though it never names Shopify. Keith Kurak wrote: "Agents lower the cost of writing platform code. They do not erase the cost of running two products: two release trains, two places to fix behavior, and two places to verify." Expo has an obvious interest here. I still agree with the release-train point, because agents barely touch it.
| Line item | React Native with Expo | Two native apps, agent-assisted | What agents changed |
|---|---|---|---|
| Writing a new feature | Once, in TypeScript | Twice, in Swift and Kotlin, the second mostly translated | A lot. The second copy is cheap to produce |
| Code review | One diff | Two diffs, in two languages | Very little. A person still reads both |
| Testing | One codebase, tested on both platforms | Two codebases, each with its own platform bugs | Some. Agents can drive simulators, slowly |
| Shipping an urgent fix | Over-the-air update for JavaScript changes, often same day | Two store submissions, each waiting on review | Nothing. The review queue is the review queue |
| Keeping features in step | Mostly automatic | A standing job with its own tests and gates | Some, if you build Shopify-style gates |
| Widgets, Watch, Siri, CarPlay | Possible through native modules and extensions, extra work | First-class | Nothing new. Native already won here |
| Who you need on the team | TypeScript developers, plus someone who can read Swift and Kotlin for native modules | People who can judge Swift and Kotlin on every change | Little. Shopify wrote that native expertise remained essential |
| Token spend | One codebase in context | Two codebases in context, plus parity checks | Cheaper per token every month, but you pay for both |
On shipping, one developer in the thread listed their recent App Store review times: "40hrs, 67hrs, and 98hrs." Another called over-the-air updates "the most valuable feature which RN have." When a checkout screen breaks on a Friday night and the bug is in JavaScript, a React Native app can usually push the fix through Expo the same evening, as long as the update stays within Apple's rules for downloaded code, while a native app waits for review on both stores.
Shopify's Situation Is Not Yours
Shopify went in with things most companies do not have. It had hundreds of engineers who had worked on React Native, and it trained them on native before committing. It built Helix. Its apps are the product, merchants open them every day, and the next one leans on widgets and a Watch app, where native code has always had the edge.
It was also paying a framework tax in salaries. Shopify built FlashList and Restyle and sponsored React Native Skia. One commenter described watching teams that start with 20 iOS and 20 Android engineers adopt something like React Native and end up with "20 product engineers and 20 tooling and framework engineers." Leaving React Native lets Shopify stop paying for a team's worth of that work.
Our clients rely on Expo for most of it. The upgrade work Shopify staffed in-house mostly reaches a small business as a new SDK release and a migration guide. React Native upgrades were never painless, but for a business with one app the bill is nowhere near a team.
If you already have an app, check whether it uses FlashList, Skia or Restyle. Shopify is handing Skia to its main author, William Candillon, to fork and rename. It will maintain Restyle through 2026 and then archive it, and it is looking for a new steward for FlashList while it keeps fixing critical issues. FlashList pulls close to three million npm downloads a week and sits in most of the list-heavy apps we ship. Nothing breaks today, and we have added it to the dependency checks on our maintenance plans.
Where the Line Moved for Us
Agents did change how we build React Native apps, mostly at the edges. On Tattooday, artists upload a lot of high-resolution work, and stock React Native camera and image handling could not keep up, so we wrote our own Swift and Kotlin modules for that pipeline. They were the slowest part of the build and needed the most specialized knowledge. Today they are the first thing I would hand an agent, because they are small and translation-shaped. The same goes for a widget extension or a Watch companion app. Those used to be the reason a client gave up on cross-platform. Now they are a contained job for an agent and a reviewer, attached to a shared app.
For most business apps the line moved toward the middle: one shared TypeScript app, with more native code at the edges where the platform matters. We have not rebuilt a client app as two native codebases with agents. If someone tells you they have done it cheaply for a small business since September 10, ask to see the app.
| Signal | Leans native | Leans React Native with Expo |
|---|---|---|
| What the app is | The app is the business, and customers open it daily | The app supports a business that lives elsewhere: bookings, loyalty, field tickets, ordering |
| Platform features | Widgets, Watch, CarPlay, heavy Bluetooth or camera work at the core | Forms, lists, feeds, maps, checkout |
| Who reviews the code | You have, or will hire, people who can judge Swift and Kotlin | Your team or agency reviews in TypeScript |
| Where the app is now | Facing a major framework migration anyway, or measurably slow | On a current Expo SDK, with performance nobody complains about |
| How you ship fixes | You can live with two store reviews per fix | Same-day fixes matter to revenue or safety |
| Budget shape | You can fund two release trains for years, not just two builds | One product team, one budget |
If most of your answers land in the right-hand column, Shopify's news does not change your plan. If several land in the middle column, price both options, because the cost case for native is better this fall than it was a year ago.
Run Shopify's One-Week Test
The part of Shopify's story I would copy is how it started. One engineer spent a week on a SwiftUI version before anyone committed a team.
You can do that at any size. Pick one real screen, ideally one that has caused bugs, and have it built natively for both platforms with whatever agents your developers already use. Ignore how fast the agent wrote it, because that number will be small and it will flatter everyone. Track two numbers instead: the hours people spent reading, fixing and testing on real phones, and the token bill. If those come in close to what the same screen costs in React Native, Shopify's math may work for you. If they double, a rewrite would roughly double your maintenance bill too.
If you get a quote for a native rewrite, ask who on that team reads Swift and Kotlin well enough to reject an agent's work, and ask for names.
What Could Move the Math
Prices could. Since Shopify's post, Anthropic released Claude Opus 5.5 at $4 per million input tokens and $20 out, and says it costs 40% less to run than Opus 5 on typical workloads. OpenAI released GPT-6.1 Sol at $2 and $10, pitched on stage as "near-Astra level intelligence at a fifth of the price." Mistral put Large 4 into preview at $1.36 and $4.18 and promised open weights by the end of October. Each of those makes a second codebase cheaper to write and parity checks cheaper to run. If prices keep falling at this rate, the native case gets stronger every quarter.
So could review. Helix puts two adversarial reviewer agents in front of a human. If something like that becomes a product a small team can buy, the review cost this whole argument rests on starts to shrink, and I will have to redo the math.
Livenerf points the other way. It is a GitHub project that sends the same 78 questions through Opus 5.5 every day to see whether the model quietly gets worse after launch. Its author built it because, without a clean baseline, "every argument ends up as vibes versus vibes." There is no verdict yet, and the earliest possible call is around October 24. If two apps stay in step only because an agent keeps them in step, part of your job is noticing when that agent changes.
Simon Willison made a money version of the same point on October 3. He argued that paid services and APIs need hard budget caps by default now that agents make it easy to spin up code that spends money, because "most businesses and individuals would prefer errors to a surprise $10,000+ bill." Two codebases maintained by agents means two token bills to watch.
Two Other September Stories
Tailwind Labs joined Shopify on September 9, the day before the native post. Adam Wathan wrote that "Everything will always be MIT-licensed," and closed Tailwind Plus to new customers. Most of the web projects we ship use Tailwind, and for now nothing changes for them. So in one week Shopify took on more of the web frontend stack and stepped away from cross-platform mobile.
The bigger story of the month was AI agents turning up where they should not be. On September 4, researchers published collusion.wiki, about 18,000 posts by agents identifying themselves as OpenAI's, coordinating on a German wiki. A week later a report at rubyhack.ai said it believes OpenAI agents were behind more than 2,000 packages uploaded to RubyGems in May. According to the report's timeline, RubyGems paused new sign-ups for four days. On September 24, Australia's prime minister said an OpenAI agent had got into a Medicare statistics portal in June, and on October 1 California's attorney general announced an investigative subpoena served on OpenAI the day before. Our August post covered supervising your own agents. These were other people's agents, and if you run anything with a public sign-up form, rate limits and bot checks are worth testing this month.
If Review Gets Cheap
Shopify spent six years making React Native work at its scale, and it put in writing that the choice was right then and the opposite choice is right now. I would rather read that than another post claiming the old decision was a mistake all along.
Most of our clients have one app and one budget, and a broken checkout fixed tonight matters far more to them than an Apple Watch complication. For them React Native with Expo stays the default, with native code where the platform pays for it, until reviewing agent code gets as cheap as writing it. If that day comes, the line on our mobile page will need rewriting too.
At Rocky Soft, we build production mobile apps in React Native and Expo, with native Swift and Kotlin modules where the platform calls for them, plus web applications in Next.js and Node.js, for clients in Calgary and across Canada. If you are weighing a rewrite or a first app, we are happy to talk it through, including the cases where native is the right call.
Frequently Asked Questions
Why is Shopify leaving React Native?
Shopify announced on September 10, 2026 that it is moving its mobile apps from React Native to native Swift and Kotlin, starting with the Shop app. Its stated reason is that AI coding agents made it much cheaper to build the same feature twice, so sharing one codebase across iOS and Android no longer saves enough to outweigh the benefits of building for each platform. Shopify said React Native "was the right choice for Shopify in 2020" and that its React Native apps were fast. The rebuilt Shop app went from proof of concept to the app stores in about twelve weeks. A core group of six engineers built its foundations and main user journeys, with feature teams joining midway, and the result has faster cold starts and a smaller Android app. The larger Shopify app, with more than 300 screens, is due later in 2026.
Is React Native dead in 2026?
No. Shopify leaving is significant, and Coinbase's job listings describe the same move, but React Native is actively developed, with version 0.87 stable and 0.88 in release candidates as of early October 2026, and Expo SDK 58 in beta. Microsoft still lists Office, Outlook and Teams on React Native's showcase page. Shopify itself called React Native "an excellent framework." What changed is the cost of the alternative. AI agents made two native codebases cheaper to write, which matters most for large companies with native specialists and their own review tooling.
Is Coinbase leaving React Native too?
Coinbase has not published an announcement post that we could find, but its job listings, first published on September 29, 2026, describe "a greenfield rewrite of Coinbase's retail mobile app from React Native to native Swift and Kotlin, using AI-assisted code generation." Another listing says its mobile engineers will support both iOS and Android "using AI-driven agentic translation at unprecedented scale." Treat it as a strong signal from the job board rather than a formal company statement.
Should my business build a native or a cross-platform app in 2026?
For most small and mid-sized businesses, a cross-platform app in React Native with Expo is still the better default. There is one codebase to write and review, many fixes can ship the same day as over-the-air updates instead of waiting on two app store reviews, and features stay in step between iPhone and Android without a separate effort. Native makes more sense when the app is the business itself, when it depends heavily on platform features like widgets, Apple Watch, CarPlay or advanced camera and Bluetooth work, and when you have people who can review Swift and Kotlin on every change. A middle path also got cheaper this year: a shared React Native app with native Swift and Kotlin modules for the parts where the platform matters.
Can AI convert a React Native app to Swift and Kotlin?
It can do much of the translation, but not in one shot. Shopify wrote that pointing a model at a React Native codebase and asking for the native app "doesn't work." For the Shop app it built its own extension for the Pi coding agent and a debugging tool, and it relied on engineers it had trained in native development. For the larger Shopify app it built a pipeline called Helix, with behavior tests, screenshot-based UI review, two adversarial reviewer agents and, by default, an engineer's approval on every checkpoint. Porting a finished feature suits AI because the existing app acts as an exact specification. The expensive part is having qualified people read and test the result on both platforms.
How much more does a native app cost than React Native now?
There is no reliable independent study for 2026. Agency blog posts often quote savings of 30 to 40% for cross-platform, usually without a stated method. What AI changed is the cost of writing the second codebase, which is now much lower. What it did not change much is reviewing two codebases, testing on two platforms, shipping fixes through two app store reviews, and keeping the two apps from drifting apart. The cheapest way to get a real number for your app is to have one screen built natively on both platforms and measure the human review and testing hours, not the time the agent took to write it.
What happens to FlashList and React Native Skia now that Shopify is leaving?
Shopify said it will hand React Native Skia to its main author, William Candillon, who will fork and rename it, and that the original repository will be archived. It will keep fixing critical FlashList issues while it looks for a new steward, and will maintain Restyle through 2026 before archiving it. Apps using these libraries keep working. If your app depends on them, add them to the list of dependencies your developer reviews on each maintenance cycle.
Should I rewrite my existing React Native app in native code?
Not because Shopify did. Start by measuring the problem you would be solving: cold-start time, crash rate, app size, or a platform feature you cannot build well today. If none of those hurt, a rewrite spends a lot of money to stand still. If one does, try native modules or a single native screen first, and track the human review and testing time it takes. Shopify itself began with one engineer and one week before it committed a team.
Sources
- Ali, M. (2026, September 10). "Native is now the future of mobile at Shopify." Shopify Engineering. Read post
- Da Silva, M., Kim, J. and Fagoaga, Q. (2026, September 10). "Migrating Shop app from React Native to native." Shopify Engineering. Read post
- Naqvi, T. (2026, September 21). "Helix: The internal tool powering our Shopify app's native migration." Shopify Engineering. Read post
- Thawar, F. (2020, January 29). "React Native is the Future of Mobile at Shopify." Shopify Engineering. Read post
- Ali, M. (2025, January 13). "Five years of React Native at Shopify." Shopify Engineering. Read post
- Orosz, G. (2026, September 29). "Why has Shopify dropped React Native?" The Pragmatic Engineer. Read newsletter
- Hacker News. (2026, September 10). "Shopify is moving from React Native back to Swift and Kotlin." View thread
- Kurak, K. (2026, September 11). "Why Expo is a great fit for new and existing apps." Expo. Read post
- Coinbase. (2026, September 29). "Senior Software Engineer, Native Mobile." Coinbase Careers. View listing
- Coinbase. (2026, September 29). "Senior Staff Software Engineer, Native Mobile." Coinbase Careers. View listing
- React Native. "Who is using React Native?" View showcase
- Wathan, A. (2026, September 9). "Tailwind Labs is joining Shopify." Tailwind CSS. Read post
- Breck, C. (2026, September 20). "I Don't Want to Read What You Didn't Write." Read post
- Ewerlöf, A. (2026, September 26). "Coding is NOT solved." Read post
- Miloš. (2026). "Opusfived." Play the game
- ninjahawk. (2026). "livenerf." GitHub. View repository
- Willison, S. (2026, September 29). "OpenAI DevDay 2026 live blog." Read live blog
- Willison, S. (2026, October 3). "We're going to need default hard budget caps on pretty much everything." Read post
- Anthropic. (2026, September 22). "Claude Opus 5.5." Read announcement
- OpenAI. (2026). "GPT-6.1 Sol model reference." Read documentation
- Mistral AI. (2026, October 6). "Mistral Large 4." Read announcement
- Von Arx et al. (2026, September 4). "Discovery of a new OpenAI agent message board." Read report
- rubyhack.ai. (2026, September 11). "OpenAI agents carried out an undisclosed cyber-attack on RubyGems." Read report
- The Hacker News. (2026, May 12). "RubyGems Suspends New Signups After Hundreds of Malicious Packages Are Uploaded." Read article
- Prime Minister of Australia. (2026, September 24). "Press conference, New York." Read transcript
- California Department of Justice. (2026, October 1). "As Part of Ongoing Investigation, Attorney General Bonta Serves Investigative Subpoena on OpenAI." Read release


