FULL STACK
A stocks and crypto dashboard built on FIFO cost basis, not just live prices.
Full-stack engineer, solo
2 weeks
Portfolio Tracker is a stocks and crypto dashboard I built around cost basis. You log buys and sells; P/L uses FIFO so a sale consumes the oldest lots first. Performance and allocation charts sit on top of that, with a privacy mode that hides balances when you are screen-sharing.
What looked like a UI bug - numbers drifting after sells - was lot ordering. Sells were not consistently consuming the oldest buys across re-renders and async price refreshes. I rewrote the path to process transactions in time order with per-asset queues, then locked it with tests on hand-traced portfolios. The lesson was domain, not display.
Pricing comes from TwelveData and CoinGecko behind a rate-limited proxy. Auth and data live in Supabase with row-level security so isolation is enforced on the server. When an upstream throttles or drops, the UI degrades instead of going blank - stale-but-labelled beats a spinner that never resolves.
Stack in short: React, Vite, TanStack Query, Supabase, Recharts. Setup and schema notes are in the GitHub repo.