Expo + Supabase
iOS + Android from one codebase, with auth, database, storage, and offline sync.
The mobile stack that doesn't need a Mac
Expo handles the build pipeline, Supabase handles the backend, and your laptop never has to be a Mac. I built VITAL end-to-end on a Chromebook with this stack.
Why Supabase pairs well with Expo
The standard mobile-app pain is "we need a backend; let's spin up Firebase." Firebase is fine, but it locks you into Google's ecosystem and the data model (NoSQL documents) doesn't map well to most app needs. Supabase gives you Postgres, which means real relations, real joins, real SQL — without giving up the realtime + auth + storage that Firebase provides.
Offline sync
The trickiest part of mobile is offline-first. The pattern I use:
- Local SQLite via
expo-sqliteas the source of truth on-device. - Supabase Postgres as the source of truth in the cloud.
- Bidirectional sync via Supabase realtime — pushes outbound changes, listens for inbound.
- Conflict resolution by timestamp + user-id wins (or LWW with user override).
This isn't magic — it requires careful schema design — but it's well-understood territory and has known shapes.
- ✓Consumer mobile apps with user accounts
- ✓Apps with offline-first sync needs
- ✓Apps with media (photos, videos)
- —Apps needing extreme custom native (Vision Pro, deep AR)
- —Apps with sub-50ms realtime needs (game-style)
VITAL
Full mobile fitness app with workout logging, AI food scanner, GPS tracking, water tracker, Ramadan/halal mode. Built for the Replit Buildathon.
Read the case study →Build on Expo + Supabase?
See pricing →