This is a client-side lock for casual privacy, not encryption — don't rely on it for highly sensitive data.
One or more holdings is missing its price source's API key — add it in Settings (⚙) so prices update.
Total Portfolio Value
$0.00
—
Allocation
Performance
Tracking starts now — this fills in as you keep checking your portfolio. It can't show history from before today.
Holdings
Asset
Platform
Value
Gain/Loss
Trend
No holdings yet
Add your first stock, crypto, or fund to start tracking.
Add holding
Used to fetch live price from Finnhub.
For EODHD, include the exchange suffix in the symbol above, e.g. CSPX.LSE.
Optional, but recommended for tickers listed on multiple exchanges — e.g. symbol CSPX + exchange LSE.
We'll work out how many units this equals using the current price — no need to calculate that yourself. Enter in whichever currency your platform shows you; we'll convert it.
What you actually paid in total for this holding, in whichever currency you paid it — used to calculate gain/loss. Leave blank to skip gain/loss tracking for this holding.
Settings
Free at finnhub.io — powers live US stock & ETF prices. Free tier does not cover non-US exchanges.
From eodhd.com — covers LSE, Euronext, Xetra, and 60+ global exchanges. Enter symbols with the exchange suffix, e.g. CSPX.LSE.
From twelvedata.com — 800 free calls/day, covers 250+ global exchanges including LSE, Euronext, Xetra.
From marketstack.com — 100 free requests/month, 70+ exchanges including LSE. Free tier is end-of-day only (updates once per trading day), not intraday.
Card pricing works with no key at all (1,000 requests/day). Get a free key at pokemontcg.io for 20,000/day if you're tracking a lot of cards. ETBs and other sealed products aren't covered by this API — track those with "Enter price manually".
Set once in the page source (the DASHBOARD_PASSWORD constant near the top of the file), so it's the same for everyone who visits. Edit it there and redeploy to change it.
Paste a JSON array of holdings below. The app fetches live prices itself to calculate units — you don't need to know today's prices.