projects
Card Vault: a price tracker that updates itself
A collection tracker for Pokémon and sports cards that reprices itself every morning from real sold prices, and runs entirely on free tiers.

- Role
- Design and build
- When
- 2026-09
- Tools
- Claude Code, Next.js, Postgres, Vercel
- AI
- Claude Code
What it does
Card Vault tracks what a card collection is worth. Add a card and its price updates automatically every morning, with no spreadsheets and no manual lookups.
Raw Pokémon cards are priced from live market data. Graded and sports cards are priced from sold listings, because an asking price is only what someone hopes to get.

Pricing you can trust
Every graded card shows the sales behind its price. If a listing isn't really your card, like a damaged copy or a different grade, untick it and the value recalculates straight away.

Designed around the data, not just the screens
Pricing data is messy, so the product gives the collector the final say:
- Untick a sale that isn't really your card, and the value recalculates straight away.
- Set your own value for anything unusual, and the daily updates leave it alone.
- Bulk import a collection from a CSV template. Pokémon rows are matched to live prices automatically.
Adding one card is a search, not a form. Type a name and pick the exact printing from real card art. The set, number and year fill themselves in, and the card is linked to live prices.

A constraint worth designing for: free
Every service it runs on stops at its limit instead of charging. That constraint shaped the product: photos are resized in the browser before upload, the day's pricing work is split across several scheduled jobs, and a settings page shows today's usage against each limit.
