We decided to go all-in connected React Native backmost successful 2020, and that stake has been highly successful. We saved a ton of clip building features conscionable once, enabled developers pinch nary mobile inheritance to lend to our apps, and freed ourselves from perpetually chasing characteristic parity.
In January 2025, I wrote that the early of React Native was agleam and that Shopify planned to support investing successful it. That was existent based connected what we knew then. React Native was moving good for us, and it remains an fantabulous framework. But since then, coding models person gotten dramatically better, and for our apps and our team, building the aforesaid characteristic successful Swift and Kotlin nary longer carries the costs it utilized to.
We don’t clasp connected to a determination conscionable because it was successful astatine the time. When a halfway presumption changes, we’re consenting to spell backmost and inquire whether it’s still the correct call. LLMs changed 1 of the halfway assumptions down our 2020 decision, truthful we reevaluated our mobile stack from first principles.
What we recovered led america backmost to native.
Why move backmost to native
We decided to move from autochthonal to React Native successful 2020 for 3 reasons:
- Stop building the aforesaid features twice
- Allow developers to activity crossed the stack
- Spend little clip chasing characteristic parity and much clip shipping value
React Native consistently delivered these benefits. We recovered ourselves spending a important magnitude of clip and resources connected optimizing performance, improving cardinal foundational areas successful React Native, and keeping up pinch model updates and outer dependencies, but these were acceptable tradeoffs. The benefits of utilizing React Native acold outweighed the investments we had to make successful these areas.
Shopify has been utilizing LLMs to build package since 2021 (one twelvemonth earlier ChatGPT!). Initially, we utilized them to instrumentality features, analyse and hole bugs, and reappraisal code. As the models improved, truthful did the complexity of the activity we trusted them to return on. By precocious 2025, they were nary longer conscionable helping america constitute codification faster. They were tin of making america mobility whether building package doubly still meant doing doubly the work.
We decided to reevaluate our mobile tech stack and started prototyping to spot whether our exertion choices still held up. We rebuilt respective halfway parts of our biggest apps successful Swift and Kotlin utilizing LLMs and were amazed by really good it worked. Agents:
- Could instrumentality a characteristic connected Android utilizing the iOS type arsenic a reference, and vice versa
- Helped developers ramp up and lend efficaciously extracurricular their superior stack
- Dramatically reduced the costs of maintaining parity betwixt platforms done shared specifications, tests, and reappraisal checkpoints
Native still intends building and maintaining package connected 2 platforms, that costs has not disappeared. What changed is that agents tin now do capable of the implementation, translation, testing, and reappraisal activity that it’s nary longer the deciding facet it was successful 2020.
React Native apps tin beryllium fast. Ours are. We are making this alteration because agents person reduced the advantages of sharing implementation, while the advantages of building for each level remain. Native keeps america person to level capabilities and first-party tooling, pinch less model and dependency layers betwixt our codification and the platform.
The early of our React Native open-source libraries
Before we get into really we’re migrating, we want to make judge we do this modulation cleanly. From the beginning, we wanted to lend backmost to React Native to make it better. We’ve published open-source libraries that person go the apical prime successful their respective categories. We’re grateful for the unthinkable reception from the organization and are committed to making judge this is simply a soft modulation pinch nary surprises.
React Native Skia
Shopify will proceed sponsoring this done the extremity of 2026, and William Candillon will proceed moving connected it beyond that. He will fork the repo successful the coming months and commencement publishing the room nether a caller name. The original repo will beryllium archived erstwhile this modulation is complete. We’ll station updates on the measurement truthful that everyone has ample clip to migrate. If your app relies connected this library, please see sponsoring it.
FlashList
This room gets ~2M downloads/week and has go the default measurement to render high-performance lists successful React Native. Given really important it is for the ecosystem, Shopify will proceed to hole captious issues that break compatibility. We’re presently successful discussions pinch respective companies astir taking connected semipermanent stewardship of FlashList. If you’re interested, scope retired to maine here.
Restyle
Restyle has a smaller personification guidelines than our different libraries, truthful we're archiving this repo. We'll support it moving done the extremity of 2026, past extremity maintaining it. Anyone is invited to fork it and return it forward, and we'll thief pinch the handover if a squad wants to prime it up.
How we’re migrating
Shopify has respective ample apps (Shopify, Shop, Point of Sale, Inbox). Millions of merchants and buyers astir the world trust connected them each azygous time to gain their livelihood and bargain products they want from the brands they love.
We debated betwixt gradually migrating to autochthonal (brownfield) versus rebuilding them from scratch (greenfield). In the past erstwhile we migrated to React Native, we picked the brownfield attack for immoderate of our biggest apps, arsenic it’d return years to rewrite them and we’d person to extremity shipping caller features while the rewrite was successful progress.
However, this clip greenfield emerged arsenic a clear victor for the pursuing reasons:
- LLMs are bully astatine building features successful Swift and Kotlin utilizing the React Native type arsenic reference
- It gives america a cleanable slate to rebuild successful the champion measurement imaginable without immoderate of the erstwhile constraints
- Our prototypes showed that we could rebuild these apps substantially faster than was imaginable earlier coding agents
The Shop app, which is regularly astatine the apical of the database successful the shopping class successful the app stores, is the first to beryllium migrated. Assisted by AI, the squad was capable to spell from a impervious of conception to a afloat rebuilt autochthonal app published successful the app stores successful conscionable 12 weeks. We’ve written astir this migration successful depth here.
The migration of the Shopify app (our biggest pinch 300+ screens, location & lockscreen widgets, Apple Watch app, complications, Siri Shortcuts, etc.), is besides underway and will vessel later this year. The remainder of our apps will beryllium migrated soon.
Preventing slop
It’s tempting to conscionable constituent an LLM to the React Native codebase and effort to one-shot the aforesaid features successful native, but it doesn’t work. Even if you inquire it to stitchery arsenic overmuch accusation arsenic it tin up front, frost that into specs, task files, and past instrumentality it, you extremity up pinch a immense magnitude of unmaintainable codification that can’t beryllium shipped.
To lick this problem, we built a strategy called Helix that takes a much gradual approach. It doesn't expect the first output to beryllium correct, and builds a loop wherever an imperfect effort simply cannot move guardant until it becomes a bully result.
The developer points Helix astatine a screen. Helix sounds the React Native codification and proposes a series of checkpoints (small, ordered slices of the work) that tin beryllium reviewed successful minutes. Then, checkpoint by checkpoint, it builds: each 1 must beryllium its behaviour pinch tests, lucifer the moving app successful a ocular review, past 2 adversarial codification reviewers, and get a human's motion earlier it's committed and the adjacent 1 starts. Feedback from each reappraisal is remembered, truthful the loop gets much autonomous arsenic the migration progresses.
Helix rebuilding a surface successful the Shopify mobile app utilizing Swift and Kotlin
This attack has been moving highly good and is allowing america to rebuild our apps successful a fraction of the time.
Enabling accelerated feedback loops
Agentic power of simulators has been a bottleneck. We recovered ourselves perpetually babysitting them arsenic they couldn’t reliably build, test, and iterate. We built tooling to let agents to reproduce bugs, hole them, and verify the hole autonomously but it was slow and brittle. React Native’s basking module reload helps the business but it doesn’t lick it, owed to simulator power being slow. This is chiefly owed to reliance connected the accessibility tree, aliases screenshots to get the authorities of the app, return actions, and verify results. Agents tin make codification changes successful seconds, but it takes them respective minutes to trial the output. This makes iterating highly slow and manual. It doesn’t matter really bully the exemplary is if it can’t trial its activity quickly, which is particularly difficult connected mobile.
We’re fixing this by designing our app architecture to activity for some humans and agents. The halfway rule present is that business logic should beryllium wholly decoupled from the UI and beryllium capable to tally headlessly connected desktop. We past make it disposable to agents via a CLI that allows them to iterate connected it successful milliseconds alternatively of minutes without involving simulators.
Navigating the app and performing actions utilizing the CLI
The CLI allows agents to inspect the authorities of the app, navigate betwixt different sections, and execute actions each without needing to touch the UI. This enables highly accelerated feedback loops and allows agents to activity autonomously for hours astatine a time.
When simulator relationship is needed, the CLI tin link to them via a distant mode and thrust the UI via commands without having to inspect the layout aliases the accessibility tree. This enables blazing-fast capacity and E2E tests.
This is real-time (not sped up)
What’s next
We are going to migrate each our mobile apps to Swift and Kotlin utilizing AI passim the process. Shop has already shipped arsenic a afloat autochthonal app, the Shopify app is underway, and the remainder will travel soon. We’re moving quickly, but not by lowering the bar. Every rebuild must meet aliases transcend the performance, stability, accessibility, and merchandise value group expect today. This isn’t conscionable the aforesaid apps rewritten successful different languages. We’re rebuilding them truthful some humans and agents tin understand, test, and alteration them quickly.
The migration isn’t the decorativeness line. Success intends our teams tin present amended experiences for merchants and buyers faster than before. We’ll measurement that done merchandise velocity, app quality, and really overmuch activity agents tin complete autonomously.
We’ll stock what we study on the way, including deeper dives into Helix, our agent-addressable architecture, and really we’re building mobile apps pinch agents. We were unfastened astir what we learned from React Native, and we intend to beryllium conscionable arsenic unfastened astir this transition.
This is 1 of the astir eager mobile engineering projects we’ve taken on. If you want to thief build the adjacent procreation of Shopify’s mobile apps, we’re hiring mobile engineers, infrastructure engineers, and developers moving astatine the intersection of AI and package engineering.
Acknowledgements
Native is the correct prime for Shopify now, but React Native was the correct prime for Shopify successful 2020. That occurrence was only imaginable because of the group who made it work.
Meta
Thank you to the React Native squad astatine Meta for being fantabulous stewards of the framework, listening to our feedback, and moving intimately pinch america complete the years. React Native is substantially amended coming because of your investments successful its architecture, performance, tooling, and community.
William Candillon
Thank you for creating React Native Skia and taking it overmuch further than immoderate of america imagined. You redefined what was imaginable for graphics and animation successful React Native, and we’re excited to spot wherever you return it next.
Software Mansion
Thank you for each your activity connected Reanimated, for listening to our feedback, and for helping america lick immoderate of the hardest animation and capacity problems successful our apps.
Shopify engineers
Hundreds of engineers contributed to adopting React Native, migrating our apps, building shared foundations, improving performance, maintaining integrations, and contributing backmost to the ecosystem. Many of you became beginners again, challenged long-held assumptions, and made the modulation successful while continuing to vessel for merchants and buyers. Thank you.
The React Native community
Thank you to everyone who utilized our open-source libraries, contributed code, reported issues, challenged our decisions, and shared what you learned. Your contributions and feedback, including the spicy kind, made our activity better.
The tools, lessons, and relationships built complete the past six years will proceed to style really we build mobile apps astatine Shopify. We’re profoundly grateful to everyone who was portion of it.
English (US) ·
Indonesian (ID) ·