How to Set Up Deep Linking in Your Expo App

DavidDavid August 5, 2026 7 min read
Deep linking pathways connecting to a mobile app screen
Original image, App Store Launch Club

What Deep Linking Does For Your App

Deep linking is a URL that opens your app directly to a specific screen instead of just launching to the home tab. Tap a link in a text message, an email, or a push notification, and instead of a browser tab or a generic home screen, your Expo app opens straight to the exact product, order, or profile the link pointed at. For an app builder, it is the difference between a notification that dumps a user on the home screen and one that takes them exactly where they meant to go.

It matters most anywhere you are sending someone a link from outside the app: marketing emails, shared content between users, password reset flows, and push notifications. Every one of those loses most of its value if it lands the user somewhere generic instead of the specific screen the link was about.

Setting Up a Custom URL Scheme in Expo

  1. Add a scheme field to app.json, e.g. "scheme": "myapp".
  2. Rebuild the app - a scheme change requires a new native build to take effect, a JavaScript-only reload is not enough.
  3. Test it with the Expo community tool uri-scheme: `npx uri-scheme open myapp://your-path --ios`, which launches the simulator straight into that path.

Deep Linking From Push Notifications

A push notification with no deep link opens the app to the home screen no matter what the notification was about, which wastes the entire reason you sent it. Wire the notification's data payload to carry a deep link URL, then handle it in the same Linking listener you set up above so tapping the notification lands on the exact screen it referenced - an order, a message, a specific piece of content - instead of forcing the user to go find it themselves.

Join the App Store Launch Club at appstorelaunchclub.com for $9/month for the full build workflow, from first Expo screen to a live app on both stores.

Free app-building tips, straight to your inbox

Short, practical drops on app ideas, validating fast, store listings, and passing app review. No spam, unsubscribe anytime.

Frequently asked questions

Do I need a real domain to set up deep linking?

Only for universal links and App Links, which require a verification file hosted on a domain you control. A custom URL scheme does not need a domain, but it is also less trustworthy for production use since any app can register the same scheme and it fails silently if the app is not installed.

Can I test universal links in Expo Go?

No. Universal links depend on native entitlements baked into the compiled binary, so they only work in a development build or a full EAS build, not inside Expo Go.

Does Expo Router handle deep linking automatically?

Yes, for the routing itself - every file in the app directory becomes a URL path automatically. You still need to configure and host the associated-domains verification file separately so the operating system trusts the link in the first place.

What is the most common thing that breaks?

Hosting the apple-app-site-association or assetlinks.json file incorrectly - the wrong content type, a redirect, or missing HTTPS. The OS checks that file directly and gives up silently if it does not load cleanly, so there is no error message pointing you at the problem.

Should I bother with deep linking if my app is simple?

If you ever send a push notification, a marketing email, or let users share content from the app, deep linking is what makes that link actually useful. Without it, every link you send just opens the home screen regardless of what it was about.

Where can I learn the rest of the Expo build workflow?

The App Store Launch Club covers the full path from your first Expo screen to a shipped app on the App Store and Google Play, including push notifications, subscriptions, and deep linking. Join at appstorelaunchclub.com for $9/month.

Last reviewed by David on August 5, 2026

David

Written by

David

Founder and app builder

Keep reading

App StoreLaunch

App Store Phased Release: How the 7-Day Rollout Works, How to Pause It, and When to Skip It

App Store phased release rolls a version update out to a random sample of users with automatic updates on over 7 days: 1 percent on day one, then 2, 5, 10, 20, 50 and 100. You can pause it for up to 30 days in total, or release to everyone with one button. Here is exactly what Apple says it does, what it does not do, and how I decide when an Expo app update should use it.

David 8 min
Read article
ExpoClaude Code

How to Add Haptic Feedback to Your Expo App

How to add haptic feedback to your Expo app: install expo-haptics, then call the right method for the moment - selectionAsync for pickers, impactAsync for taps and gestures, notificationAsync for outcomes. Here is the exact mapping, the reason the simulator stays silent, and the one rule that keeps haptics from feeling cheap.

David 8 min
Read article

Ready to build it yourself?

Join App Store Launch Club, the #1 community for building and launching apps, for $9/month.

← Back to the blog