South African personal budgeting app with AI-powered transaction parsing
# bump.
South Africa's AI-powered personal finance app. Paste an SMS, import a bank statement, or ask a question in plain English — bump. categorises your spending, tracks your finances, and gives you actionable insights.
> **Before making any changes to this repo, read `CLAUDE.md` in the project root.**
---
## Core functionality
- Transaction parsing via typed text or SMS paste (Claude Haiku)
- Bank statement import (CSV / Excel) with automatic categorisation
- Monthly overview with category breakdowns and budget tracking
- Income statement with period comparison and AI interpretation
- Spend analytics, financial projections (DCF), and grocery price comparison
- AI budget Q&A with conversation history
- AI support chatbot
- Consultation booking with human financial advisors
- Tiered subscription model (Free / Starter / Growth / Pro) via Paystack
- Admin dashboard with access management and tier simulation
---
## Tech stack
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite 5, React Router 6 |
| Backend | Netlify Functions (Node/ESM serverless) |
| Database + Auth | Supabase (Postgres, Row Level Security, Auth) |
| AI | Anthropic Claude API (Haiku for chat/parse, Sonnet for analysis) |
| Payments | Paystack (subscriptions + webhooks) |
| Hosting | Netlify (auto-deploy from GitHub) |
| Spreadsheet parsing | SheetJS (xlsx) |
---
## Local setup
```bash
git clone
github.com
cd bump-budget
git checkout dev
npm install
```
Create a `.env` file in the project root (Netlify reads this locally via the CLI):
```env
VITE_SUPABASE_URL=...
VITE_SUPABASE_ANON_KEY=...
SUPABASE_SERVICE_KEY=...
ANTHROPIC_API_KEY=...
PAYSTACK_SECRET_KEY=...
```
Start the local dev server:
```bash
npm run dev
```
To test Netlify Functions locally, use the Netlify CLI:
```bash
npx netlify dev
```
---
## Environment variables
| Variable | Used by | Purpose |
|---|---|---|
| `VITE_SUPABASE_URL` | Frontend + Functions | Supabase project UR …