---
title: "Building an App Clip with React Native"
description: "The Shop team built an iOS App Clip to reduce the drop-off between a buyer’s checkout thank-you page and opening the full Shop app, where App Store download and onboarding added friction. App Clips are invoked through actions such as QR scans, links, or Smart App Banners and must stay below 10MB, while the team wanted React Native support for order tracking and related functionality. A Hello World build initially measured 28MB; explicitly selecting native dependencies in the Podfile reduced the baseline to 4.3MB, and a scrappy feature build reached 6.5MB. The team used early testing, invocation URL handling through React Native Linking, and shared data containers for app upgrades, ultimately releasing an App Clip at 9.1MB; extensive code sharing proved too complex and some code was copied."
---

# Building an App Clip with React Native

[Shopify](https://yomu.fyi/company/shopify) · 2023-10-18 · Nov 26, 2021

**Type:** Problem & solution

## Summary

The Shop team built an iOS App Clip to reduce the drop-off between a buyer’s checkout thank-you page and opening the full Shop app, where App Store download and onboarding added friction. App Clips are invoked through actions such as QR scans, links, or Smart App Banners and must stay below 10MB, while the team wanted React Native support for order tracking and related functionality. A Hello World build initially measured 28MB; explicitly selecting native dependencies in the Podfile reduced the baseline to 4.3MB, and a scrappy feature build reached 6.5MB. The team used early testing, invocation URL handling through React Native Linking, and shared data containers for app upgrades, ultimately releasing an App Clip at 9.1MB; extensive code sharing proved too complex and some code was copied.

## Context

The Shop team observed a substantial funnel drop-off between the checkout thank-you page and opening the Shop app. App Store download and onboarding added enough friction that some buyers did not complete the process. The App Clip was intended to let buyers view order tracking immediately and optionally receive push notifications.

## Approach / What changed

The team used a fail-fast plan: measure a React Native Hello World build, create a scrappy version containing estimated features and dependencies, then make it functional. They explicitly selected App Clip native dependencies in the Podfile, used React Native Linking for invocation URLs, shared data containers for transition to the full app, and released an early beta to test the production invocation flow. They adjusted code sharing when it introduced too much complexity.

## Takeaways

- A bare React Native App Clip measured 28MB because it included the Shop app’s native dependencies; explicitly defining only the required pods reduced the baseline to 4.3MB.
- The team tested estimated functionality before making it work, reaching a 6.5MB scrappy build with dependencies for GraphQL calls, error reporting, and push notifications.
- The released App Clip measured 9.1MB, while broad code sharing with the main application proved too complex, leading the team to copy code where appropriate.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [GraphQL](https://yomu.fyi/topic/graphql), [iOS](https://yomu.fyi/topic/ios), [Performance](https://yomu.fyi/topic/performance), [Testing](https://yomu.fyi/topic/testing)

- Source: [Shopify](https://shopify.engineering/building-app-clip-react-native)
- Source URL: https://shopify.engineering/building-app-clip-react-native
- Ingested by Yomu: 2026-08-30T15:28:28.520Z

[Read original post](https://shopify.engineering/building-app-clip-react-native)
