02 · Mobile · Growth · Companion
Expo + shared packages + EAS
The monorepo grows up; the mobile app gets its own release pipeline while still sharing every type with the web app.
Agent fit5/5 Growth · Charge for it Reviewed
The stack
- Framework
- Expo + Expo Router in the product monorepo
- Data
- The product API, consumed through a shared generated client
- Auth
- The product's provider with native SDK and biometric unlock
- Hosting
- EAS Build and Update with a release channel per environment
- Also
-
- Shared design tokens through NativeWind
- Maestro flows for the mobile-only paths
- Deep links mapped to the web app's URLs
Why agents do well here
5/5- The shared client and schema packages mean the agent's backend change surfaces as a type error in the mobile app before anyone opens a phone.
- Deep links that mirror web URLs let the agent reuse the web app's route knowledge for mobile navigation.
- Release channels per environment make it safe for the agent to push updates to staging on every merge.
Avoid at this tier
- Diverging the mobile data model from the web one; keep one schema package.
- Rebuilding web features on mobile because they exist; keep the phone flows deliberate.
- Native modules that only one platform needs, unless it is the product.
How it fits together
The companion app now has its own release pipeline but remains a consumer of the product’s API and schema. Deep links map to web URLs so the same notification or email works on either surface.
Folder layout
apps/web/
apps/mobile/ app/, src/features/, maestro/
apps/api/
packages/schema/ packages/api-client/ packages/tokens/ 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 One schema package
- 02 Deep links equal web URLs
- 03 Release channels per environment
- 04 Biometric unlock on top of the shared auth
- 05 Maestro on the mobile-only flows
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