Get your first Expo app running in just a few minutes. This guide will walk you through creating a new project and seeing it on your device or simulator.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/expo/expo/llms.txt
Use this file to discover all available pages before exploring further.
This quickstart uses Expo Go, which means you don’t need to install Xcode or Android Studio. For custom native code, see Development Builds.
Prerequisites
Before starting, make sure you have:- Node.js 18+ installed (nodejs.org)
- A code editor (VS Code recommended)
- A mobile device OR iOS Simulator / Android Emulator
Create a new app
Open your terminal and run:This creates a new Expo project with a working app template. The command will:
- Create a
my-appdirectory - Install all required dependencies
- Set up the project structure with Expo Router
What gets created?
What gets created?
Start the development server
Start the Expo development server:You’ll see a QR code in your terminal and output like this:
The development server uses Metro bundler to compile your JavaScript and serve it to your app.
Open on your device
On your phone
- Install Expo Go on your device:
-
Scan the QR code:
- iOS: Use the Camera app
- Android: Use the Expo Go app
Using a simulator
iOS Simulator (Mac only):Pressi in the terminal. Expo will:- Open Xcode Simulator automatically
- Install Expo Go if needed
- Launch your app
a in the terminal. Make sure you have an Android emulator running first.Web Browser:Press w to open in your default browser.What Just Happened?
Congratulations! You just:- Created a new Expo app with Expo Router for navigation
- Started a development server with Metro bundler
- Opened your app on a device or simulator
- Made a change and saw it update in real-time
Understanding Your Project
File-Based Routing
Your app uses Expo Router for navigation. Files in theapp/ directory automatically become routes:
Link component:
Key Files
app.json - App Configuration
app.json - App Configuration
Controls your app’s settings:
app.json
package.json - Dependencies
package.json - Dependencies
Lists your app’s dependencies and scripts:
package.json
Development Commands
Interactive Terminal
When the dev server is running, press:a- Open on Android emulatori- Open on iOS simulatorw- Open in web browserr- Reload the appm- Toggle developer menuj- Open React DevTools (web)c- Show project QR code
Common Issues
Can't scan QR code
Can't scan QR code
Make sure your phone and computer are on the same WiFi network. If using a corporate network, try:This uses a public URL that works on any network.
Port already in use
Port already in use
The default port (8081) is taken. Try:
iOS Simulator won't open
iOS Simulator won't open
Make sure Xcode is installed:Then try running the simulator first:
Metro bundler errors
Metro bundler errors
Clear the cache and restart:
Next Steps
Learn Core Concepts
Understand how Expo works under the hood
Follow the Tutorial
Build a complete app step-by-step
Explore the SDK
Browse 100+ native modules for camera, location, notifications, and more
Complete Installation
Set up for production builds with Xcode and Android Studio