Overview
The mobile app uses one codebase with two config modes controlled byEXPO_CONFIG_MODE.
| Mode | Value | Purpose |
|---|---|---|
| Expo Go development | development | Local development with Expo Go |
| EAS builds | production | Dev client, preview, production, and submission builds |
How It Works
apps/mobile/app.config.js reads EXPO_CONFIG_MODE and transforms the base config from apps/mobile/app.json.
In development mode it removes EAS-only settings that Expo Go cannot use:
updatesruntimeVersionextra.eas
production mode it keeps the full EAS configuration and sets extra.isExpoGo to false.
What Sets The Mode
pnpm devpnpm dev:lanpnpm dev:tunnel
EXPO_CONFIG_MODE=development.
pnpm start:eas- all
pnpm eas:*build and submit commands - EAS cloud builds via
apps/mobile/eas.json
EXPO_CONFIG_MODE=production.
Metro
apps/mobile/metro.config.js is shared across both modes. The app does not use separate Metro configs for Expo Go and EAS builds.
Build Commands
The current build and submission commands are documented in Mobile Build Workflow. Use that page as the source of truth for the supportedapps/mobile commands.