Household Harmony
Private Beta
A budgeting app for couples and households, built to replace the fragile spreadsheet my wife and I outgrew. Plan a shared budget, forecast months ahead, and let an LLM sort credit-card statements into categories - with a Swedish tax engine and everything sensitive encrypted on your own device. In private beta.
My wife and I ran our household on a spreadsheet: estimated income, the fixed costs we knew about, and category budgets we'd worked out by averaging a year of receipts (groceries, mostly). To look ahead, we'd duplicate the sheet, label it a future month, and fill in what we already knew was coming - a stretch with less income, a big one-off, that kind of thing.
It did the job, but it was fragile, awkward to share, and every change meant babysitting formulas. Household Harmony is what I built to replace it: a budgeting app for couples and households, in private beta - the same budget-and-forecast habit, but maintainable, shareable, and private by default, with everything sensitive encrypted on your own device.
Core Features
- Client-side encryption - two-tier DEK/KEK system with AES-256-GCM + PBKDF2 (100k iterations). Keys derived from user passwords, held in memory only, never persisted to disk. Auto-lock after 30 min inactivity
- Swedish tax engine - 2025 bracket calculations (32%/52% progressive), annual prognosis with refund/owing estimates
- LLM invoice parsing - PDF credit card statements parsed via user-provided API keys (Groq, Gemini), with merchant category learning and hash-based caching
- Financial month awareness - configurable billing cycles (default 25th-24th) as an alternative to calendar months
- Encrypted demo mode - ephemeral accounts with pre-populated Swedish household data, rate-limited creation
Architecture
- Frontend: React 18 + TypeScript, Vite, Tailwind CSS with shadcn/ui, React Context API, TanStack React Query
- Backend: FastAPI (Python 3.11+) with Supabase Auth (JWT)
- Database: PostgreSQL via Supabase with Row Level Security
- Deployment: Vercel (frontend) + Railway (backend)