Personal spending tracker web app. Tracks daily transactions, budgets by category, and shows monthly history.
Data is stored in localStorage by default — no account or internet connection needed. Optionally connects to Supabase for cloud sync and multi-user support.
First time (after cloning):
npm install
npm run devEvery time after that:
npm run devThen open http://localhost:5174 in your browser. Works immediately with local storage, no setup required.
To sync data across devices or support multiple users, connect a Supabase project.
Sign up at supabase.com and create a new project.
In Supabase → SQL Editor → New query, paste the contents of supabase/schema.sql and run it.
In Supabase → Authentication → Email, turn off "Enable email confirmations" if this is just for you. Leave it on if others will sign up.
Copy .env.example to .env.local:
cp .env.example .env.localFill in the values from Supabase → Project Settings → API:
VITE_SUPABASE_URL=https://your-project-id.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-public-key-here
npm run devYou'll see a login page. Create an account and your data syncs to Supabase from that point on.
npm run build
npm run preview- React + Vite
- Tailwind CSS
- Recharts (bar chart on Monthly History)
- date-fns
- Supabase (optional)