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.