✦ Stack

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-sqlite as 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.

✦ Good for
  • Consumer mobile apps with user accounts
  • Apps with offline-first sync needs
  • Apps with media (photos, videos)
✦ Skip if
  • Apps needing extreme custom native (Vision Pro, deep AR)
  • Apps with sub-50ms realtime needs (game-style)
✦ Built with this stack

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 →
✦ Keep reading

Build on Expo + Supabase?

See pricing