10 items of feedback from our first user session. Here's what was requested, what we built, and what's next.
Stamped and promo cards (e.g., Charizard promo) weren't appearing in search results. Users expected to find these special variants easily.
Promo cards work! All promo sets have "Promos" in their set name (e.g., "SWSH Black Star Promos"), so searching "Charizard Promo" returns 22 results. Stamped cards are physical print variants not tracked in our data source - use "Add Card Manually" as a workaround.
When buying multiples of the same card, users wanted to log them efficiently instead of adding each card one by one.
Added a quantity stepper to the intake form. System creates N separate Airtable records in parallel. Toast confirmation shows: "Added 3x Pikachu ($5.00 each, $15.00 total)".
Japanese-exclusive cards like Yu Nagaba Pikachu promos don't appear in search because our data source only contains English cards.
"Add Card Manually" button appears in empty search state. Card category includes language selector (JP, EN, KO, ZH, FR, DE, ES, IT, PT). Search query pre-fills the card name for convenience.
No way to log sealed products (booster boxes, ETBs, etc.) which aren't in the card database.
Manual Entry form with category selector: Card, Sealed Product, Accessory. Each category has relevant product types. Sealed includes: Booster Box, ETB, Booster Bundle, Blister Pack, Collection Box, Other.
Users want current market price and 30-day trend data displayed during search and intake.
Deferred to Phase 3. Requires nightly price scraping infrastructure (cron -> scraper -> D1 prices table). Data sources being evaluated: TCGPlayer, eBay sold listings, PriceCharting.
No way to view existing inventory. The app only had Intake, Sales, and Trades tabs.
Full Inventory page with: stats header (Total Items, Total Cost, Avg Cost), search bar with real-time filtering, category filter chips (Cards, Sealed, Accessories), condition filters (NM, LP, MP, HP), and card list with images.
Current logo showed card icon + "Pristine" text. User wanted official branding deployed.
Official "PRISTINE CARD COMPANY" wordmark deployed to admin-app header. Updated favicon to match. Diamond/P logo kept for small contexts.
Searching "MewTwo Base Set" doesn't return Shadowless or 1st Edition variants.
FTS5 now indexes subtypes - searches like "Charizard VMAX" and "Pikachu EX" work! However, 1st Edition and Shadowless are print run variants NOT in our data source. These require supplementary data.
When logging a graded slab, user wants to see the actual slab photo (not raw card image). PSA has no public API.
Manual photo upload now available. Images are compressed and stored in R2. Works for any card/product including graded slabs. AI composite (card -> slab template) exploration deferred.
Support for other card games: Magic: The Gathering, Yu-Gi-Oh, One Piece.
Each IP requires: data source (MTG: Scryfall, Yu-Gi-Oh: YGOProDeck, One Piece: manual curation), schema updates (card_game field), and UI updates (game selector). Recommend solidifying Pokemon workflow first.
Foundation features for inventory management. Category selector, quantity field, inventory tab, and manual entry for cards not in database.
Improved search capabilities with subtypes indexing, logo redesign, and Japanese card workarounds.
Enhanced data capabilities including market pricing, print variants, and expanded search.
Advanced features and expansion to new card games.
Questions for discussion and action items
The new Inventory tab in the admin app provides a simple list view of your inventory with search and filters. However, Airtable offers a more powerful experience for managing data at scale — sorting, grouping, kanban views, bulk editing, and custom views.
The question is: which screen do you want to use day-to-day?
Please review both interfaces and share your thoughts on how you'd like to manage inventory going forward. Consider what actions you do most frequently and which interface makes them easier.
Several requested features require card data that isn't available in free/open sources:
To build these features, we'd need access to a paid data provider. Example: Scrydex offers comprehensive Pokemon TCG data APIs.
The "Add Card Manually" workaround handles these cases today, but automated lookup would improve the intake experience significantly.
Please log in and explore both interfaces. Try adding a few cards, review your inventory in Airtable, and note any issues or ideas.