
VaultKeeper
The best Pokemon card tracker, MTG collection tracker, and more. AI-powered scanning with real-time Price Charting values. Track your collection free.
I'm building Vault Keeper — an app that lets collectors scan their Pokemon and Magic: The Gathering cards, track what they paid, and watch their portfolio value update in real-time.
Here's the story, the tech, and where it's headed.
The Problem
Every TCG collector I know has the same problem: they're sitting on real money and treating it like a junk drawer.
I've been collecting Pokemon cards on and off since childhood. A few months ago I tried to figure out what my collection was actually worth. What followed was a painful evening of spreadsheets, five different pricing websites, and the slow realization that I had no idea what I'd paid for half of these cards.
The existing apps? Fragmented. Limited. Most TCG trackers only cover one game. The scanners are inaccurate. Graded cards are an afterthought. And if you collect Pokemon and Magic and maybe some sealed product — good luck managing three different apps with three different subscriptions.
Collectors deserve better.
What I'm Building
Vault Keeper is a collection tracker built for serious collectors who want to know exactly what they own and what it's worth.
Core Features
Smart Card Scanning
Point your phone at a card and Vault Keeper identifies it — set, edition, variant, everything. The scanning uses a local database for speed with AI vision as a fallback for edge cases (foreign promos, obscure variants). No more manually searching through thousands of results.
Real-Time Portfolio Valuation
Every card in your collection pulls live market pricing. Not stale data from last month — actual current values from active marketplaces. Watch your total collection value update as the market moves.
Share Collections with public link
I created a link generation system so users can show off their collections with a unique link to their collection they turn on for sharing. It's the equivalent of sharing a binder full of Pokemon cards in person. Same functionality, same nostalgia.
Graded Card Support
A PSA 10 Charizard isn't worth the same as a raw copy. Vault Keeper tracks graded cards separately with pricing for PSA, CGC, and BGS slabs. Log your cert numbers, track your submissions, see the real value of your slabs.
Multi-TCG Coverage
Pokemon. Magic: The Gathering. Eventually Yu-Gi-Oh, One Piece, Lorcana. One app, one login, one portfolio view across all your cards.
Purchase Price Tracking
Log what you actually paid. See your gains (or losses) at a glance. Know which pickups were steals and which ones you overpaid for.
Tech Stack
I'm building this as a cross-platform app with a shared backend:
Mobile (iOS & Android)
- Expo (React Native) for native performance
- Expo Camera for card scanning
- NativeWind for Tailwind-style mobile styling
Web Dashboard
- Next.js 14 with App Router
- Tailwind CSS + shadcn/ui
- Companion web app for managing collections on desktop
Backend & Data
- Supabase for everything: PostgreSQL database, authentication (OAuth with Google/Apple), real-time sync, image storage, and Edge Functions
- Row Level Security for user data isolation
- Single supabase-js client works identically on mobile and web
Pricing Data
- PriceCharting API for multi-category coverage (TCG, comics, video games, coins)
- Covers ungraded and graded values (PSA 7-10, BGS, CGC)
- Caching layer to minimize API calls and keep costs predictable
Card Recognition
Hybrid approach:
- Local database matching for common cards (fast, free)
- Claude Vision API fallback for identification edge cases
Extract card name, set symbol, collector number, language
- Match against pricing database for exact product ID
Building in Public
I'm documenting the entire process. The wins, the roadblocks, the decisions.
What's working:
- Supabase has been incredible for moving fast. Auth, database, storage, realtime — one service, one SDK.
- The monorepo structure (Expo + Next.js sharing a packages folder) keeps business logic DRY.
- PriceCharting as a single pricing source means I'm not juggling five different API integrations.
What's been hard:
- Apple Developer account setup was a journey. Xcode signing loops, device trust certificates, the whole dance.
- TCGPlayer closed their API to new developers, which killed my original pricing strategy. Had to pivot to PriceCharting.
- Card scanning accuracy is the make-or-break feature. Getting it right for vintage cards, foreign releases, and promo variants is an ongoing challenge.
What's next:
- Beta launch for Pokemon collectors
- Comics, funkopops, vinyl, more collectables support in Phase 2
- Community features: track trades
Why I'm Building This
I'm a collector. I have binders of Pokemon cards from the 90s and stacks of Magic decks I've been meaning to catalog for years. I built Vault Keeper because I needed it.
But I also run a digital marketing agency, and I've spent a decade building software for niche markets. I know how to validate an idea, ship an MVP, and iterate based on real feedback. This isn't a side project that'll die in a GitHub repo — it's a product I'm committed to launching.
If you collect TCG cards and want early access, follow along.
I'll be posting updates on the build posting updates on the build, sharing what I learn, and looking for beta testers soon.
Vault Keeper — Keeper of your collections.
@vaultkeeper on socials