Deploy Everywhere with Expo Router

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Thanks to Expo Router it's easier than ever to build a beautiful app that runs on iOS, Android, and web. With the addition of AI tooling, it's now easier to build an app than it is to deploy one, but it doesn't have to be. Learn about how we've improved Expo Router and how we're making it easier to ship apps everywhere.

This talk has been presented at React Summit 2025, check out the latest edition of this React Conference.

FAQ

Expo for web enables universal apps that run both on the web and natively on mobile devices. It supports SEO, modern CSS tooling, and React 19 features, improving both web and native platforms.

Yes, because Expo apps are truly native, they have day-one access to new platform features like Apple's Liquid Glass design, without requiring code changes.

The Expo server platform includes features like secure environment variables, serverless endpoints, and React server functions to build universal full-stack applications seamlessly and securely.

Expo simplifies app deployment with tools like MPX TestFlight for iOS, which automates building, signing, and uploading apps to TestFlight without needing ad hoc provisioning or expensive hardware.

Expo has integrated continuous native generation (CNG), allowing the inclusion of custom native code. It also introduced Expo for web, Expo Router for file-based routing, and Expo DOM components for incremental migration from web to universal apps.

Continuous native generation (CNG) is a system where the native runtime is automatically generated based on the React runtime. It allows developers to progressively include native code without diving into tools like Xcode or Android Studio, enhancing development velocity.

ExpoGo, previously known as Exponent, is a tool that allows developers to quickly create and share mobile prototypes globally. It facilitates launching apps in minutes by scanning a QR code to instantly launch a native app, among other features.

MPX create target is a feature in Expo that allows developers to easily add Apple home screen widgets, share extensions, app clips, live activities, and more to their iOS apps.

Expo Router is a universal file-based routing system for both native and web platforms. It simplifies navigation by allowing routes to be defined by creating files in the app directory, solving issues like deep linking and type safety.

Expo allows incremental migration using Expo DOM components. Developers can mark components with use DOM to render them in an optimized web view, enabling a step-by-step transition to universal apps.

Evan Bacon
Evan Bacon
26 min
13 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Innovating ExpoGo (formerly Exponent) for rapid mobile prototyping with custom native code support and instant deployment. Revolutionizing native app development with Continuous Native Generation (CNG) for enhanced speed and access to new features. Empowering React framework with Expo for web, enabling universal apps with SEO benefits and advanced CSS tools. Innovating navigation with Expo Router for seamless file-based routing and native API integration. Streamlining app deployment with Expo for efficient full stack development and user onboarding.
Available in Español: Deploy Everywhere with Expo Router

1. Exploring the Evolution of ExpoGo

Short description:

In 2017, discovered Exponent (now ExpoGo) for quick mobile prototyping with worldwide sharing. Innovated QR code app launch but faced limitations. Joined expo team to enhance tool, enabling custom native code usage for truly native Expo apps with unlimited potential and instant deployment.

All right. When I first discovered Exponent, the original name for ExpoGo, in 2017, I was amazed by the ability to quickly create beautiful mobile prototypes and then share them worldwide in an instant. Coming from a Swift background, I was used to spending weeks building an interaction just to share screenshots online. So I instantly fell in love with the idea of launching apps in minutes instead of months. Exponent pioneered tech like scanning a QR code to instantly launch a native app, but there were some limitations.

You needed to eject to add custom native code, the binaries were very large, and the tooling was very limited. So while it was at the forefront of app distribution, there were still a number of ways it could improve. The Exponent was essentially a prototype of what software should look and feel like. It should be instant and shareable with URLs and cross-platform like the web, but with the beauty and unlimited potential of a mobile app.

So I dropped everything in my life to join the expo team and turn this vision of the future into a reality, and today I'm going to show you how far we've come and where expo is going. So the first step was to make expo more than just a prototyping tool. To do this, we needed to remove all limitations and allow for any custom native code to be used. Expo apps are composed of two parts. There's the native runtime that works like a high-powered browser and the JavaScript layer which works like a modern React website.

2. Revolutionizing Native App Development with CNG

Short description:

The original Exponent prototype lacked custom native code inclusion, solved by continuous native generation (CNG). CNG revolutionized Expo and React Native projects, offering unlimited development speed and native access to new features. MPX create target enhances native platform potential by enabling Apple widgets, app clips, and seamless app experiences with custom haptics.

In the original Exponent prototype, the native runtime was a single binary and the JavaScript layer would be swapped out for each build. This means no custom native code could be included, only the JS was mutable. Very similar to a browser. So to solve for this, we created a system where the native runtime would be automatically generated based on the React runtime. This meant you could progressively embrace native code instead of having to jump into Xcode and Android Studio headfirst. And the system is called continuous native generation, or CNG for short.

CNG simultaneously solved many of the biggest problems with both Expo and React Native, but most notably, upgrading projects became as simple as bumping the node modules and running Expo pre-build. Expo CNG changed everything, because it meant there were no limits and no compromises on the development velocity. You could use any native code you want and enjoy all the benefits of Expo. Because Expo apps are truly native, they have day one access to all the new platform features, like Apple's new Liquid Glass design language, with no code changes required. So you get all the beautiful native elements, just day one, built into the platform.

CNG enables you to push the native platform to its maximum potential. Just recently I released MPX create target, which enables you to easily add Apple home screen widgets, share extensions and app clips, live activities and more, to your iOS app. I used MPX create target to add an app clip to my game Pillar Valley, enabling users to instantly open the app from a URL, just like the web. This is great, because people can immediately experience the native app as it was intended to be used, with beautiful shaders and custom haptics during gameplay. And then you can download the app right inside of the app without ever having to visit the app store. So this very seamless experience.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Fetch Once, Render Everywhere: React Server Components in Expo Router
React Summit 2024React Summit 2024
28 min
Fetch Once, Render Everywhere: React Server Components in Expo Router
Top Content
React Native and ExpoRouter provide a powerful way to build client-side applications that run on both web and native platforms. Server-driven UI and React Server Components offer dynamic rendering and A-B testing opportunities. Server rendering in native apps allows for the integration of movies and enhances the user and developer experience. The Talk includes live demos showcasing interactions with Spotify and native contacts, as well as currency conversion. Server rendering and React Server Components enable the generation of interactive components and bring modern state and AI to every platform.

Workshops on related topic

Building for Web & Mobile with Expo
React Day Berlin 2022React Day Berlin 2022
155 min
Building for Web & Mobile with Expo
Workshop
Josh Justice
Josh Justice
We know that React is for the web and React Native is for Android and iOS. But have you heard of react-native-web—for writing an app for Android, iOS, and the web in one codebase? Just like React Native abstracts away the details of iOS and Android, React Native Web extracts away the details of the browser as well. This opens up the possibility of even more code sharing across platforms.
In this workshop you’ll walk through setting up the skeleton for a React Native Web app that works great and looks awesome. You can use the resulting codebase as a foundation to build whatever app you like on top of it, using the React paradigms and many JavaScript libraries you’re used to. You might be surprised how many types of app don’t really require a separate mobile and web codebase!
What's included1. Setting up drawer and stack navigators with React Navigation, including responsiveness2. Configuring React Navigation with URLs3. Setting up React Native Paper including styling the React Navigation drawer and headers4. Setting up a custom color theme that supports dark mode5. Configuring favicons/app icons and metadata6. What to do when you can’t or don’t want to provide the same functionality on web and mobile
Prerequisites- Familiarity with building applications with either React or React Native. You do not need to know both.- Machine setup: Node LTS, Yarn, be able to successfully create and run a new Expo app following the instructions on https://docs.expo.dev/get-started/create-a-new-app/