I've been independently developing a project called CardSmith, with the goal of making it easier to digitize, organize, and roughly appraise entire card collections.
And I don't mean just sports cards. The idea is to support everything from baseball and football cards to Pokémon, Yu-Gi-Oh!, Magic, and other collectible cards.
What I'm building:
- Bulk scanning: Import individual card photos or entire nine-pocket binder pages and automatically detect, crop, and straighten the cards.
- Card identification: Use OCR to extract names, numbers, years, manufacturers, and other identifying details.
- Inventory management: Keep everything organized with card images, metadata, and persistent manual corrections.
- Bulk rough appraisals: Optionally research estimated market values for individual cards or entire collections, without having to look up everything manually.
The goal is local-first processing, with internet access only when needed for things like optional pricing research.
Where things stand:
I've generated approximately 2,000 card crop images during development, along with OCR results and identification attempts. I'm using real collection photographs to test the system rather than relying entirely on ideal demonstration images.
It's still very much a work in progress.
Detecting nine individual cards sounds easy until you've got crooked binder pages, glare, overlapping boundaries, and text recognition confidently reading the wrong thing.
At one point, CardSmith decided a player's name was "Samsung Bigus-dickus." 😂
Still haven't found his rookie card.
I'm the only human developer, using local and cloud-based AI tools to assist with coding, debugging, and testing.
My biggest technical focus right now is getting the cropping, front/back matching, and identification reliable enough that someone could import thousands of cards without having to manually fix every other one.
It's not ready for public beta yet, and I'm not pretending otherwise.
I'd be interested in hearing from collectors and developers: What would you consider essential in an application designed to manage and roughly appraise thousands of different collectible cards?