What this prompt does
This prompt scaffolds a production-ready Expo React Native starter so a project is production-shaped before any feature code lands. It covers six steps: initializing file-based routing with Expo Router, setting up state and data fetching, implementing theming with light and dark mode, configuring essential Expo modules, building the auth flow, and wiring up tooling and CI. The idea is that the first day decides how the next six months feel, so the boring foundations get done the same way every time.
The variables shape the template. [expo_version] and [route_count] plus [tab_count] define the routing structure, [state_library] and [data_fetching] plus [http_client] set the data layer, and [styling_approach] with [color_count] drives theming. [notification_provider] and [environment_count] configure Expo modules, [auth_method] and [validation_library] build the auth flow, and [linter], [formatter], and [test_framework] set up tooling and EAS pipelines. Choosing the state and data libraries deliberately matters most, since swapping them later touches a lot of code.
When to use it
- You are starting a new Expo app and want a consistent, production-shaped foundation.
- You want Expo Router file-based routing with auth, tab, and modal route groups.
- You need state, data fetching, and a typed API client decided up front.
- You want light and dark theming with system-appearance integration from the start.
- You need secure storage, push notifications, and OTA updates configured early.
- You want EAS Build profiles and a CI pipeline working from the first PR.
Example output
Expect an app directory with [route_count] routes organized into (auth), (tabs), and (modals) groups, with a root layout handling safe areas and a splash screen. From there you get [state_library] and [data_fetching] configured with a typed [http_client] client and interceptors, a theme provider with [color_count] semantic tokens for light and dark, configured Expo modules (secure-store, notifications, image, updates), an auth flow with [auth_method] and route protection, and a GitHub Actions workflow plus EAS Build profiles for development, preview, and production. It is mostly project structure and config with key code, arranged so the project is shaped like a mature codebase before the first feature ships.
Pro tips
- Match
[expo_version]to a current SDK so the module configuration and EAS profiles work without version drift. - Keep
[route_count]and[tab_count]aligned with your real navigation so the generated route groups are usable. - Choose
[state_library]and[data_fetching]you actually want long-term; swapping them later touches a lot of code. - Define enough
[color_count]semantic tokens (background, surface, primary, text, error, success) so dark mode is complete, not partial. - Store sensitive auth data in expo-secure-store and persist auth state so it survives restarts.
- Wire the CI workflow early; lint, type-check, and tests on every PR plus preview builds pay off from the first day, not later.