Skip to content

Local setup

Prerequisites

ToolVersionNotes
Node.js22.xThe CI pipeline runs on Node 22
npm10.xShips with Node 22
Gitany recent
Expo Go applatestOn your phone, for the fastest dev loop
Android Studio / XcodeoptionalOnly for emulators/simulators and native builds

Clone and install

bash
git clone git@github.com:vineethkrishnan/wespend.git
cd wespend
npm install

legacy-peer-deps

The repo ships an .npmrc with legacy-peer-deps=true. NativeWind pulls a web react-dom peer that is stricter than the React version Expo SDK 56 pins, so this flag keeps installs clean. It is expected, not a workaround you need to remove.

Environment variables

Copy the example file and fill in your Supabase project values:

bash
cp .env.example .env
bash
# .env
EXPO_PUBLIC_SUPABASE_URL=https://YOUR-PROJECT.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=YOUR-ANON-KEY

Runs without Supabase, but degraded

If the values are left as placeholders, the app still launches but onboarding is disabled and it shows a "Supabase not configured" notice. You need a real project to create a household and sync. See Supabase backend.

Verify the toolchain

bash
npm run typecheck   # tsc --noEmit
npm run lint        # eslint
npm test            # jest unit tests

All three should pass on a clean checkout. If they do, you are ready to run the app.

Spend together, settle simply.