A desktop application built with Expo (React Native for web, iOS, Android) and Tauri for building a native desktop app.
# Install dependencies
npm install
# Run as desktop app (starts Expo web + Tauri)
npm run tauri dev
# Build for production
npm run tauri buildsrc/- Expo app (web, iOS, Android) with Expo Router file-based routingsrc-tauri/- Tauri backend (Rust)dist/- Expo web build output (used as Tauri frontend)
Tauri uses the Expo web build as its frontend. This is configured in src-tauri/tauri.conf.json:
- Development:
npm run tauri devautomatically starts the Expo web server and loads it in the Tauri window - Production: The build runs
npx expo export -p webto generate static files indist/
Configure in app.json:
{
"expo": {
"web": {
"output": "server", // "single", "server", or "static"
"bundler": "metro"
}
}
}| Output | Expo Router | API Routes | Use Case |
|---|---|---|---|
single |
Yes | No | Simple SPA (default) |
server |
Yes | Yes | API routes + custom server |
static |
Yes | No | Static hosting |
See Publishing Websites for more.
| Command | Description |
|---|---|
npx expo start |
Run Expo in web/mobile dev mode |
npm run tauri dev |
Run desktop app in development |
npm run tauri build |
Build production desktop app |
npm run reset-project |
Reset to fresh project state |
- Expo Docs - Fundamentals and guides
- Learn Expo Tutorial
- Tauri Docs
- Expo Router