Deployment overview
WeSpend has three deployment surfaces, each with its own pipeline:
| Surface | What ships | Driven by |
|---|---|---|
| Mobile app | Installable Android/iOS builds | EAS Build |
| Backend | Supabase schema and policies | Migrations |
| This docs site | Static HTML | VitePress build |
The flow at a glance
mermaid
flowchart LR
PR[Feature branch PR] -->|CI: typecheck, lint, test| Main[main]
Main -->|release-please| RelPR[Release PR]
RelPR -->|merge| Tag[Git tag + GitHub Release]
Main -->|eas build| App[App binary]
Main -->|migrations| DB[(Supabase)]- Every change lands on
mainthrough a PR that passes CI. - release-please maintains a release PR; merging it tags a version and publishes a GitHub Release with the changelog.
- App binaries are built from
mainwith EAS. - Backend changes are applied as Supabase migrations.
What needs real credentials
The pipeline scaffolding is in place, but these require accounts/secrets you provide:
- Supabase: project URL + anon key (in
.envand as CI secrets if needed). - EAS / Expo: an Expo account and
eas.jsonfor cloud builds. - App stores: Google Play and Apple Developer accounts for store submission.