React + Firebase
Gold Silver Stacker
I built a real-time precious metals portfolio tracker with live AUD spot prices, profit analytics, historical value charts, and sold items management for bullion investors.
- Type
- Web Application
- Timeline
- 2024–Present
- Stack
- React, TypeScript, Firebase
- Live site
- goldsilverstacker.com
Tracking bullion in Australian dollars
GoldSilverStacker began with a problem in my own collection: purchases were recorded in Australian dollars, while the price tools I was using required currency conversion and separate lookups. Keeping a spreadsheet current meant repeatedly checking prices for four metals.
The product brings purchase cost, estimated market value and daily movement into one view, with each item retained as a separate record. That structure supports both a portfolio overview and review of individual purchases.
The Dashboard
When you log in, the first thing you see is the current spot price for gold, silver, platinum, and palladium, all in AUD. These update in real time. Below that is a full portfolio summary: total paid, total market value, estimated profit/loss, and daily change. It also shows breakdowns per metal, including average paid price, spot position, total premium paid over spot, and total weight in ounces and kilograms.
The idea is that you should be able to glance at the dashboard and immediately know how your stack is performing without doing any mental maths.
Your Stack
The main tracking view is a table of every item in your collection. Each entry includes the purchase date, year, name (e.g., “Perth Mint 2oz Mother and Baby Dingo”), quantity, total ounces, current profit if sold at market value, and profit percentage. Items are grouped by metal type, so you can see your silver stack separate from your gold.
You can search, sort by profit, and manage your stack from this view. Adding a new item is straightforward: enter the details, the purchase price, and it starts tracking against live spot immediately. The platform handles all the calculations automatically, including converting weight to ounces and tracking premiums paid over spot price at the time of purchase.
Portfolio Value Charts
The graphs page shows your total portfolio value over time, plotted against what you originally paid. This makes it easy to see how your stack’s value has moved with the market. You can toggle between total market value and total paid to visualise your profit margin over any time period.
The chart also shows the live spot prices for all four metals at the top of the page, updated within the last minute. This is useful for timing purchases or just keeping an eye on where the market is sitting on any given day.
Sold Items and Tax Tracking
When you sell items from your stack, they move to the Sold Items section. This tracks everything you need for record keeping: total paid on sold items, total sold price, profit/loss, postage charged, and tax. It also breaks down the totals by metal type with weight in ounces.
You can view invoices, download a full summary, and search through your sold history. This is particularly useful come tax time, because the platform keeps a clean record of every transaction with the numbers ready to hand to your accountant.
Further product development
The product includes accounts, settings, dark mode and a responsive interface. Broader adoption would need to be assessed through use by other collectors; the case study demonstrates the product and design decisions rather than established market demand.
What it tracks
- 4
- Metals Tracked
- Live
- Spot Prices
- Per-Item
- Profit Tracking
- Historical
- Value Charts
- Sold Items
- Management
- SaaS
- Ready
Four metals, priced in AUD, updated every minute. Each item carries its own profit against live spot rather than disappearing into a portfolio average, and it tracks the premium you paid over spot at the time, which is the number that decides whether a coin was a good buy. Sold items keep their own record with postage and tax, so the financial year summary is something you hand to an accountant rather than reconstruct from receipts in July.
Under the hood
React and TypeScript with Firestore behind it. The spot price feed supports four metals, converted to AUD, refreshed every minute, with history kept so the charts have something to draw.
The remaining calculations include Profit against live spot, premium over spot at time of purchase, weight conversions, financial year totals. The interface needs to distinguish market estimates from recorded transaction values so people can interpret those calculations correctly.
Discuss the work
I’m interested in roles spanning product design, research and development. Get in touch to discuss the work or an opportunity with your team.
Get in touch