Case study
YourFinance
A full personal-finance tracker rather than a spending logger. Transactions feed budgets, subscriptions, goals, an investments view and a net-worth timeline, with an AI layer that reads the data and explains it. Deployed and usable at your--finance.vercel.app.

Why it exists
Most money apps answer "what did I spend?" and stop. I wanted something that also answers "am I actually saving, and what's moving?" — which means the same transaction has to feed budgets, subscriptions, goals, investments and net worth at once, and stay consistent across all of them.
What it does
Transactions with categories and recurring detection; budgets that track spend against a limit; subscriptions with renewal dates; goals with progress; an investments view; a net-worth timeline; and an AI section that summarises the data and answers questions about it in plain language.
The interesting part
Keeping six views consistent from one write. A transaction added in one place has to update category totals, the relevant budget, net worth and the AI context, without any of them drifting out of sync. Most of the work was in the data model and the derived state, not the screens.
How it is built
Next.js with TypeScript and Firestore for storage. The AI features run against the account's own transaction data rather than being decorative — the summaries are derived from what is actually there.
Source
There is no public repository for this one — it is a deployed demo you can open and use, but the code is not published. Worth being upfront about rather than letting the absence imply something that isn't true.
What I learned
- Derived state is where the real complexity lives. Six views sharing one source of truth is a data-modelling problem far more than a UI problem.
- Shipping a real deployment early made the remaining work concrete. It is much harder to get something subtly wrong when you can open it on your phone.
What it doesn't do yet
Listed deliberately — a project's limits are as useful to a reviewer as its features.
- No public source code — demo only.
- Single-account; no multi-user support.
- Bank import is manual rather than connected via a provider.
- The AI responses can be wrong about edge cases — they read your data, they do not reason about your finances.