Budget
Tracker
A PWA built with AI — from idea to shipped product in 2 weeks.
Every budget app got in the way.
-
Friction
Logging a transaction was buried 4+ taps deep. By the time you got there, the motivation was gone.
-
Privacy
Most apps want bank credentials. Handing over access to a third-party service never felt right to us.
-
The Bar
Open the app → log the transaction → done. That was it. Nothing more.
How I built it
No wireframes on a blank canvas. I used Design OS to structure the build before writing a line of code.
-
Design OS
Defined the product scope, data model, and component structure using Design OS — a tool that separates "what to build" from "how to build it" before any code is written.
-
Brainstorm
Used the brainstorming skill to pressure-test requirements: what's the minimum viable feature set? What can be cut? What order do things need to be built in?
-
Spec → Code
Design OS exported a complete handoff — data types, component specs, screen designs. That spec went straight to Claude Code as context.
-
Shipped
A fully working PWA in 2 weeks. Not a prototype — a real app my wife and I use daily for household expenses.
What it does
Log fast, switch easily
- Home screen opens straight to logging
- Natural language: "Spent 500 on lunch"
- One tap to switch personal ↔ joint account
History, insights, AI
- Monthly breakdowns with opening/closing balances
- Category spend dashboard at a glance
- Groq-powered chat: "What did I spend on food this month?"
Private by default
- No bank connections, no accounts, no servers
- All data in local storage. Nothing leaves the device
- Export any date range as a file
What I learned
-
Design first
Using Design OS before touching code meant every AI prompt had real context. The output was sharper because the input was structured.
-
Be the user
Solving your own problem is the fastest feedback loop. If something felt off during daily use, I fixed it the same day.
-
Ship it
A designer who can spec, build, and ship with AI is a different kind of designer. This project proved that to me.