02 · Mobile · MVP · Tool
Expo + SQLite, local-first
One workflow, data on the device, no backend to run, and a sync layer only if you ever need one.
Agent fit5/5 MVP · Ship it Reviewed
The stack
- Framework
- Expo (managed workflow) + Expo Router
- Data
- expo-sqlite with Drizzle ORM
- Hosting
- EAS Update; a single store listing
- Also
-
- NativeWind
- MMKV or AsyncStorage for settings
- expo-file-system for exports
Why agents do well here
5/5- No backend means the entire app is one TypeScript project the agent can read and run end to end.
- Drizzle over SQLite gives the agent a typed schema on the device, so local data has the same rigour as a server database.
- A tool has one job, so the screens, the schema and the tests all fit in context together.
Avoid at this tier
- A cloud backend before someone asks to see their data on a second device.
- Native modules for storage; the Expo SDK already covers it.
- Accounts; a tool that works offline should not need a login.
How it fits together
Most utilities never need a server. Keep the data on the phone in SQLite with a typed schema, and export to a file when someone wants their data elsewhere. If sync becomes a real request, add it as a separate feature rather than rebuilding the app around it.
Folder layout
app/ index.tsx, item/[id].tsx, settings.tsx, _layout.tsx
src/db/ schema.ts, migrations/, client.ts (expo-sqlite + Drizzle)
src/features/ <workflow>/ {screens, hooks, tests} 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 Local SQLite as the only store
- 02 Drizzle migrations bundled with the app
- 03 No accounts
- 04 File export as the sync story
- 05 EAS Update for fixes
When to move on
Stay here until the product forces the next tier. You are ready for Growth when:
- Users keep old versions for weeks after a release
- A store rejection costs you a launch date
- You need analytics, crash reporting and push that you own
- The backend is your code, shared with a web product or not