← library
prompt📱 Mobile appsv2 · updated 2026-06-12

Mobile app with Expo

One React Native codebase to both stores with Expo Router and EAS.

Run it as a prompt

Paste this into any AI agent, or fetch it: curl -s https://uplift.page/api/v1/prompts/mobile-app-expo/raw

prompt.md
# Mobile app with Expo

Ship an iOS + Android app from one TypeScript codebase, with store builds you can produce on demand.

## Recommended stack

- **Expo + Expo Router** - framework. File-based native navigation, OTA updates, and the best RN developer loop.
- **EAS Build & Submit** - release pipeline. Store-ready builds in CI without a local Xcode setup.
- **Supabase** - backend. Auth, Postgres, and realtime with a first-class RN client.
- **react-native-reanimated** - animation. 60fps gestures and transitions on the UI thread.

## Build steps

1. Start with `npx create-expo-app` (router template); set the bundle id/package name on day one.
2. Build navigation skeleton: tabs + one stack per tab; deep links from the start.
3. Implement auth/session persistence with secure storage before any feature work.
4. Use FlatList (or FlashList) for anything scrollable; measure with the perf monitor.
5. Cut a TestFlight/internal-track build via EAS in week one - store config errors surface early.

## Watch out for

- Ejecting for a native module Expo config plugins already cover.
- Testing only on the simulator; gestures and keyboards behave differently on hardware.
- Shipping screens that don't handle offline/slow network.

## Definition of done

- Cold start to interactive < 2s on a mid-range Android phone
- Auth survives app kill + relaunch
- An EAS build installs from TestFlight/internal track

The full prompt

Ship an iOS + Android app from one TypeScript codebase, with store builds you can produce on demand.

Recommended stack

  • Expo + Expo Router - framework. File-based native navigation, OTA updates, and the best RN developer loop.
  • EAS Build & Submit - release pipeline. Store-ready builds in CI without a local Xcode setup.
  • Supabase - backend. Auth, Postgres, and realtime with a first-class RN client.
  • react-native-reanimated - animation. 60fps gestures and transitions on the UI thread.

Build steps

  1. Start with npx create-expo-app (router template); set the bundle id/package name on day one.
  2. Build navigation skeleton: tabs + one stack per tab; deep links from the start.
  3. Implement auth/session persistence with secure storage before any feature work.
  4. Use FlatList (or FlashList) for anything scrollable; measure with the perf monitor.
  5. Cut a TestFlight/internal-track build via EAS in week one - store config errors surface early.

Watch out for

  • Ejecting for a native module Expo config plugins already cover.
  • Testing only on the simulator; gestures and keyboards behave differently on hardware.
  • Shipping screens that don't handle offline/slow network.

Definition of done

  • Cold start to interactive < 2s on a mid-range Android phone
  • Auth survives app kill + relaunch
  • An EAS build installs from TestFlight/internal track

Served from the uplift.page library and refreshed within 5 minutes of every update.