HomeGuidesReferenceLearn
ArchiveExpo SnackDiscord and ForumsNewsletter

Introduction to Expo Router

Expo Router is an open-source routing library for Universal React Native applications built with Expo.


Expo Router is a file-based router for React Native and web applications. It allows you to manage navigation between screens in your app, allowing users to move seamlessly between different parts of your app's UI, using the same components on multiple platforms (Android, iOS, and web).

It brings the best file-system routing concepts from the web to a universal application — allowing your routing to work across every platform. When a file is added to the app directory, the file automatically becomes a route in your navigation.

Features

  • Native: Built on top of our powerful React Navigation suite, Expo Router navigation is truly native and platform-optimized by default.
  • Shareable: Every screen in your app is automatically deep linkable. Making any route in your app shareable with links.
  • Offline-first: Apps are cached and run offline-first, with automatic updates when you publish a new version. Handles all incoming native URLs without a network connection or server.
  • Optimized: Routes are automatically optimized with lazy-evaluation in production, and deferred bundling in development.
  • Iteration: Universal Fast Refresh across Android, iOS, and web, along with artifact memoization in the bundler to keep you moving fast at scale.
  • Universal: Android, iOS, and web share a unified navigation structure, with the ability to drop-down to platform-specific APIs at the route level.
  • Discoverable: Expo Router enables build-time static rendering on web, and universal linking to native. Meaning your app content can be indexed by search engines.

Next steps

Quick start

Learn how to quickly get started using Expo Router.

Manual installation

Detailed instructions on how to get started and add Expo Router to your existing app.

Example app

See the source code for the example app on GitHub.