What is Expo?
Expo provides a complete development environment that lets you build, deploy, and iterate on native apps without needing deep knowledge of native development tools like Xcode or Android Studio. Whether you’re a solo developer or part of a team, Expo streamlines the entire mobile development workflow.Write Once, Run Everywhere
Build apps that work seamlessly across iOS, Android, and web from a single codebase using React Native.
Native Module System
Access native platform features through a modular architecture powered by expo-modules-core.
File-Based Routing
Use Expo Router for automatic navigation setup based on your file structure.
Development Tools
Fast Refresh, instant previews, and a powerful CLI make development seamless.
Key Features
Universal Runtime
Expo provides a consistent runtime environment across all platforms. Your app’s JavaScript code runs the same way on iOS, Android, and web, with platform-specific optimizations handled automatically.Expo SDK
The Expo SDK includes 50+ modules that provide access to device capabilities:- Camera & Media: Camera, Image Picker, Audio, Video
- Device Features: Location, Sensors, Haptics, Battery
- UI Components: Blur, Glass Effect, Symbols, System UI
- Storage & Network: FileSystem, SQLite, Network, SecureStore
- Authentication: Apple, Google, Auth Session
Expo CLI
The Expo CLI (@expo/cli) is your command center for development:
Expo Router
File-based routing for React Native apps with deep linking, type safety, and cross-platform navigation:Use Cases
Startups & MVPs
Startups & MVPs
Rapidly prototype and launch apps across all platforms without maintaining separate codebases. Get to market faster with hot reload and over-the-air updates.
Enterprise Applications
Enterprise Applications
Build internal tools, customer-facing apps, and business solutions with enterprise-grade security, offline support, and native performance.
Cross-Platform Products
Cross-Platform Products
Maintain a single codebase for iOS, Android, and web while delivering platform-specific experiences where needed.
Learning & Education
Learning & Education
Perfect for developers learning React Native. Start building immediately without iOS or Android development setup.
How Expo Works
Expo sits on top of React Native, providing three main layers:- Expo Modules Core: A native module API that makes it easy to write native code that works on iOS and Android
- Expo SDK: Pre-built modules for common features like camera, location, notifications
- Development Tools: CLI, Dev Server, Metro bundler integration, and native build orchestration
Expo Go vs Development Builds
Expo offers two ways to develop your app:
Expo Go
A pre-built app with common Expo SDK modules built-in. Perfect for learning and prototyping. Pros:- No native build required
- Instant preview via QR code
- Fastest way to get started
- Limited to included SDK modules
- Cannot add custom native code
- No third-party native libraries
Development Builds
Custom builds of your app with your exact dependencies. Pros:- Include any native library
- Custom native code
- Full control over capabilities
- Adding custom native modules
- Using libraries not in Expo Go
- Building for production
Getting Started
Quick Start
Create your first Expo app in 5 minutes
Installation
Complete installation and setup guide
Core Concepts
Understand how Expo works under the hood
Tutorial
Build your first app step-by-step
Community & Support
Join thousands of developers building with Expo:- Discord: Chat with the community at chat.expo.dev
- GitHub: Contribute to the expo/expo repository
- Forums: Ask questions and share knowledge
- Documentation: Comprehensive guides in this documentation site
Expo is MIT licensed and maintained by Expo (the company) with contributions from developers worldwide.
Next Steps
Ready to start building? Here’s what to do next:Try the Quickstart
Follow our 5-minute quickstart to create and run your first app
Learn Core Concepts
Understand Expo’s architecture and how everything fits together
Build a Real App
Follow the step-by-step tutorial to build a complete application
Explore the SDK
Browse the API Reference to discover what’s possible