02 · Mobile · Growth · Consumer
Expo + EAS + your own typed API
The same Expo app, now behind a versioned API you own, with device tests and crash reporting before every build.
Agent fit4/5 Growth · Charge for it Reviewed
The stack
- Framework
- Expo + Expo Router, EAS Build and Update
- Data
- Your API (Hono or NestJS) over Postgres, with a CDN for media
- Auth
- Your provider, with refresh tokens handled in one place
- Hosting
- EAS for builds and updates, store releases on a cadence
- Also
-
- Sentry for crashes, PostHog for analytics
- Maestro flows on real devices in CI
- Push through your API, not straight from a hosted backend
Why agents do well here
4/5- A versioned API with generated types lets the agent change the backend without breaking the users still on last month's build.
- Maestro flows are YAML the agent can read and extend, turning "does the feed still scroll" into a check it runs itself.
- Everything is still TypeScript; native changes go through config plugins and remain rare.
Avoid at this tier
- Breaking API changes; add fields, never remove them, until the old version's usage is zero.
- A custom native module for performance you have not measured with the profiler.
- Shipping a store build without the Maestro flows passing.
How it fits together
Growth moves the backend into your hands and the release process into CI. The app is still Expo, but every API call goes through a versioned, typed client, and every build runs device flows before it is submitted.
Folder layout
apps/mobile/ app/, src/features/, maestro/ (flows)
apps/api/ your backend with /v1 routes and OpenAPI
packages/api-client/ generated per API version First five decisions
Lock these in before the agent writes the second feature. Each one removes a choice it would otherwise make differently every time.
- 01 Versioned API paths
- 02 Generated client
- 03 Sentry and analytics before launch
- 04 Maestro on the three flows that matter
- 05 A release cadence that is a calendar, not a reaction
When to move on
Stay here until the product forces the next tier. You are ready for Scale when:
- You need background sensors, heavy graphics, or platform health and payment APIs
- iOS and Android have separate owners
- Startup time and binary size are tracked as product metrics
- Compliance requires platform-native security features