Why Shopify Is Standardizing on React Native

Shopify has committed to building all new mobile apps with React Native after years of native iOS and Android development. The decision follows internal experiments showing significant productivity gains and code-sharing potential, though the company is careful to frame it as a calculated bet rather than a wholesale migration.

Mobile already dominates Shopify's buyer traffic. In Q3 of last year, 71% of purchases came from mobile devices, and during Black Friday/Cyber Monday (BFCM) that figure averaged 69%—a 3% increase over the prior year. With that much commerce flowing through phones, the company decided it needed a more efficient way to build for both major platforms.

How Shopify Bet on Emerging Tech Before

Shopify's engineering culture favors committing to a small set of technologies and building deep expertise in them. The company argues this produces several compounding advantages: teams become core contributors to the tools they use, quirks of each technology are learned intimately, code transfers between teams more easily, and onboarding accelerates.

That philosophy has historical precedent. CEO Tobi Lütke was a core contributor to Ruby on Rails back in 2004, when the framework was obscure and widely dismissed as non-performant. Shopify built its business on that bet. More recently, the company migrated its infrastructure from its own data centers to Google Cloud—another early-contender choice—to offload undifferentiated maintenance work.

The pattern: make focused bets on newer technologies where the upside is substantial, research the risks carefully, and commit fully. React Native fits that playbook.

What React Native Brings to Mobile

Facebook announced and open-sourced React Native in 2015. The framework lets developers build native mobile interfaces using React by translating the virtual DOM into platform-native views through native bindings. While the primary targets are iOS and Android, community efforts have extended it to Windows, macOS, and tvOS.

ReactJS targets a browser, whereas React Native can target mobile APIs.

Shopify actually evaluated React Native back in 2015. While the company's Hackdays teams saw promise, performance and missing Android support meant they couldn't ship an app they'd be proud of. The experiment wasn't wasted, though: the experience led Shopify to adopt reactive programming principles, embrace GraphQL, and open-source FunctionalTableData, a functional renderer for iOS.

Native development remained the standard for years. App teams built iOS and Android versions separately, supported by dedicated mobile tooling and foundations teams. That approach worked, but Shopify suspected it could do better by unifying the stack and bringing JavaScript's web ecosystem to mobile.

Exceptions to the Default

React Native will not be the default for every new app. Shopify lists specific conditions that might rule it out:

  • targeting older hardware with CPUs below 1.5GHz
  • requiring extensive processing power
  • needing ultra-high performance
  • relying on many background threads

Low-level libraries—including many open-Source SDKs—will remain purely native. Shopify can always build custom native modules when needed.

Why the Timing Is Right Now

Three factors converged to make React Native viable in 2019:

  1. Shopify's 2018 acquisition of Tictail, a mobile-first company that bet entirely on React Native, provided hands-on evidence of how far the framework had come
  2. Shopify already uses React extensively for web development, making that expertise transferable to mobile
  3. Performance curves are bending upward; the framework is positioned for long-term investment alongside Ruby, Rails, Kubernetes, and rich media technologies

Three Experiments That Sealed the Decision

During 2019, three separate teams built apps with React Native: Arrive, Point of Sale, and Compass. The results were decisive.

The Arrive app (now known as the Shop app) was rewritten from native iOS to React Native at the end of 2018. As a highly rated consumer app with millions of downloads, it was a strong test case—and Shopify had no Android version at the time. The rewrite yielded:

  • fewer crashes on iOS than the original native app
  • a new Android version launched with the same codebase
  • a team that mixed mobile and non-mobile developers

The teams reported being twice as productive in React Native compared to native development on a single platform. Code sharing between iOS and Android reached 95% for Arrive—far exceeding expectations.

The team also developed a workflow where scanning a QR code from an automated GitHub comment loads a JavaScript bundle from a pull request directly onto a phone, allowing instant testing of work-in-progress code.

For Point of Sale (POS), Shopify ran a six-week experiment at the start of 2019. The retail context required almost 2x the responsiveness of typical consumer apps, since merchants use the app while speaking with customers. To manage risk, Shopify took a split approach: iOS stayed native while Android was rebuilt in React Native. Two teams worked concurrently, which let Shopify benchmark React Native's engineering velocity and performance against native iOS as the gold standard.

The Android React Native app was able to run on hardware with a 1.5GHz CPU threshold—lower than the 2GHz the team initially thought necessary. While the team initially assumed Facebook's upcoming re-architecture of React Native would be required for their performance needs, those updates turned out not to be critical to their use cases. Shopify announced the POS rewrite at Unite 2019, with both apps expected to launch in 2020.

Meanwhile, the Compass app (now Shopify Learn) was built from scratch by a team focused on helping new entrepreneurs. That team evaluated native development, Flutter, and React Native before choosing React Native. Both iOS and Android versions were live in app stores within three months, sharing roughly 99% of their code.

What This Means for Shopify's Mobile Roadmap

The company's stance on React Native going forward is clear, but with important nuances.

Existing native apps will not be automatically rewritten. Each app team decides independently whether a rewrite makes sense. Shopify also emphasizes that it will continue hiring native engineers, noting that contributing to core React Native and building platform-specific components requires deep native expertise on both iOS and Android.

Open Source, Partnerships, and the Road Ahead

Shopify’s commitment to React Native extends beyond internal adoption. The company is backing key figures in the React Native ecosystem, including sponsoring Software Mansion and Krzysztof Magiera, co-founder of React Native for Android, in their open source work. It is also collaborating with William Candillon, host of Can It Be Done in React Native, on architecture reviews and performance optimization.

On the governance side, Shopify is partnering with Facebook’s React Native team on automation, third-party library management, and stewardship of specific modules through the Lean Core initiative. The company is also working with Discord to accelerate the open sourcing of FastList for React Native, a library that renders only list items in the viewport, with a focus on Android optimization.

Building for Leverage: Tooling and Foundations

To extract maximum value from its React Native bet, Shopify has organized two internal team types. A tooling team handles engineering setup, integration, and deployment, while a foundations team concentrates on SDKs, code reuse, and open source contributions. Both teams were spun up in 2020 to support React Native development across the company.

One of the first projects to benefit is Shopify Inbox (formerly Ping), the messaging app that has powered hundreds of thousands of customer conversations. Currently iOS-only, the Android version is being built in React Native out of Shopify’s San Francisco office. Separately, the company is running React Native Web experiments in 2020, following the lead of Twitter’s 2019 desktop and mobile web apps built on that stack, which allows a single React Native codebase to target the web.

Further Reading and Opportunities

For deeper technical detail, Shopify has published several engineering posts on React Native topics, including:

Shopify continues to hire engineers across disciplines, including native iOS and Android developers. While the company’s stack is built on Ruby on Rails, React, and React Native, it maintains a practice of investing in engineers who may not have prior experience with those specific technologies.