CHANGELOG

What's new in VendBro. We ship fast.

v1.6.0 March 28, 2026 Latest

Magic: The Gathering support, camera-app redesign, and the v10 Pokemon model with Perfect Order cards.

New
  • Magic: The Gathering scanning. 110,000+ MTG cards from Scryfall with instant pricing (TCGPlayer market, foil, and Cardmarket EUR)
  • eBay sold price lookup for MTG cards with graded price extraction
  • Pokemon/Magic toggle in the menu. Switch games and scan immediately
  • Camera-app layout. Full-bleed camera with bottom sheet results, swipe to expand or dismiss
  • Mode tabs at the top (Single, Binder, Trade) with color theming per mode
  • Menu button opens a bottom sheet for navigation (history, profile, game toggle, sign out)
  • Perfect Order (ME03) set. All 124 cards downloadable and scannable on day one
Improved
  • Pokemon model v10 trained with ME03 cards and 11,392 eBay verified photos. 26,090 total cards
  • Camera starts faster. getUserMedia runs in parallel with auth instead of waiting for it
  • Loading spinner shown while camera initializes instead of a blank black screen
  • Scan results auto-dismiss after confirming a card so you're back to scanning faster
  • More and Log Sale buttons expand the results sheet so content is always visible
  • Price variant strip handles MTG foil and Cardmarket EUR pricing
Fixed
  • Service worker v8. Network-first HTML so new deploys are picked up right away. Old cache purged on install
  • Batch inference queue restored after model update
  • Scryfall card images added to Content Security Policy
  • Auth state changes properly update the new layout controls
v1.5.0 March 26, 2026 Stable

Trade mode, next-gen recognition engine, binder spatial layout, and massive infrastructure overhaul.

New
  • Trade mode. Scan cards to "Your" side and "Their" side, see running totals and a balance bar showing who's ahead
  • Spatial binder layout. Cards appear at their actual positions on the page instead of a flat grid
  • Late fusion scoring. Multiple recognition signals combined with smart routing instead of hard thresholds
  • Three-tier routing: auto-accept strong scans, show candidates for ambiguous ones, abstain on bad input
  • Fusion feature logging for continuous improvement from user confirmations
Improved
  • Next-gen recognition engine. Completely rebuilt visual matching trained on real-world card photos. 85% auto-identify rate
  • OCR reads card name from a dedicated name strip, preventing artwork text from leaking into results
  • Smart confidence scoring: embedding neighborhood reliability, capacity-normalized purity, margin-based routing
  • Confirmations now incrementally update the recognition index without full reloads
Infrastructure
  • Batched inference queue for concurrent scans
  • Vector search index for sub-millisecond card matching
  • In-memory card database (22,754 cards, zero database queries during scans)
  • Scan result caching for instant repeat scans
  • Server starts in 2 seconds instead of 2 minutes
  • Metrics endpoint for monitoring scan performance
v1.4.0 March 25, 2026 Stable

Card intelligence tags. Every scan now shows artist, type, year, and collector-relevant callouts.

New
  • Card tag system with 5 tag types: cameo, error, promo, notable, artist
  • 19,060 cards tagged with illustrator names from PTCG-database
  • 251 cards tagged with cameo/shared artwork data from PokeTCG/research
  • 171 cards tagged with known error variants from Bulbapedia ("Check for" tips)
  • Card metadata: type, stage, release year, and regulation mark on every scan
  • 3,252 promo reference sheets banked (EN + JP distribution sources)
Improved
  • Embedding model v6: trained with 3,260 verified eBay real-world photos
  • OCR fix: embedding now wins over bad OCR when similarity >0.80
  • TCGCSV loads in background. Server starts in 2 seconds instead of 132
  • All API calls have fetch timeouts (10-30s by endpoint)
  • Paddle checkout shows visible error when blocked or unconfigured
Security
  • Authentication added to price-lookup, ebay-listings, sale, confirm, and not-listed endpoints
  • AI service bound to localhost only (no longer accessible from network)
  • Scan limit bypass fixed (canScan defaults to false when profile not loaded)
  • Secrets removed from committed documentation
v1.3.1 March 23, 2026 Stable

Parallel recognition pipeline. 100% backtest accuracy across 191 test images.

New
  • Parallel hash + embedding + OCR with confidence-based merging
  • eBay Browse API integration for active listing prices
  • Local card database (22,754 cards, no external API calls)
  • LRU cache for repeat scans
  • Client-side error reporting to backend
  • Health monitoring (5-min cron)
  • Daily Postgres backup
Improved
  • Scan speed: 400-700ms (down from 1.5-2.8s)
  • Embedding model v5: 25,966 cards with 23K eBay training photos
  • OCR fallback scans all text for known card names (fixed Muk/Marill bugs)
  • Service worker v4: only caches own-origin requests
v1.2.1 March 22, 2026

New pricing, email routing, market analysis.

Improved
  • Pro pricing updated to $7.99/mo (from $18.99)
  • Supporter tier at $18.99/mo for those who want to fund development
  • Email routing via Cloudflare
v1.1.1 March 21, 2026

Japanese card support, redesigned result screen, new app icon, and model improvements.

New
  • Japanese card recognition. 3,297 JP card images in the AI model. Scans JP cards, detects the language, matches to correct card
  • Clean result screen. Price-first layout, no scrolling needed. Log Sale and secondary actions moved to bottom action bar
  • More menu for secondary actions (eBay, JP pricing, TCGPlayer, wrong card, report)
  • App icon (scan reticle logo) replaces text header. PWA home screen icons
  • Condition grading (NM/LP/HP/DMG) with automatic price adjustment
Improved
  • Embedding model v4: 25,966 cards (EN+JP), trained on GPU
  • Hash DB v2: 22,669 cards for perceptual matching
  • 894 missing card images added from TCGPlayer (Shining Legends, Dragon Majesty, promos)
  • eBay search shows animated "Searching..." state with spinner
  • Report button clearly labeled in red: "Report Issue (Wrong Card / Bad Price)"
  • More menu items styled as cards matching app design
Fixed
  • Camera not opening on iOS PWA (removed min resolution constraints)
  • Header layout breaking after logo change (missing wrapper div)
  • Hash learning not saving (database NOT NULL constraint on old column)
v1.1.0 March 20, 2026 Stable

Big UX overhaul. Sessions, conditions, cleaner result screen, and a bottom action bar that changes based on what you're doing.

New
  • Condition grading (NM/LP/HP/DMG) with automatic price adjustment
  • Session-based history. Name your sessions ("Ala Moana Show", "Mike's Binder")
  • CSV export per session. Dump your whole show into a spreadsheet
  • Manual card search. Type the name if the camera can't find it
  • Contextual bottom action bar. Buttons change based on the active screen
  • Persistent nav bar with active state highlighting
  • Scan transition animation (freeze, zoom, reveal)
  • App icon and PWA home screen support
Improved
  • Result screen is now one-page, no scrolling. Price is always the dominant element
  • Binder scan now runs OCR on each card to validate matches
  • Binder cards now show TCGPlayer market prices
  • Tapping a binder card confirms it and saves to history
  • "Wrong card?" and secondary actions moved to a "More" menu
  • eBay search shows animated "Searching..." state
  • Report button now says "Report Issue (Wrong Card / Bad Price)" in red
  • Retrained embedding model on GPU with fresh weights
  • 894 new card images added from TCGPlayer (Shining Legends, Dragon Majesty, promos, and more)
Fixed
  • Loading screen no longer gets stuck (30s safety timeout)
  • Fixed AI service pointing to wrong server (all improvements were being bypassed)
  • Fixed hash learning not saving (database schema mismatch)
  • Camera now works on iOS PWA standalone mode
  • Fixed header layout breaking when logo was changed to icon
v1.0.0 March 19, 2026 Stable

First production release. Card scanning, pricing, payments, and the full vendor workflow.

New
  • AI card recognition with 21,775 cards across every Pokemon TCG set
  • TCGPlayer market prices on every scan (via TCGCSV, 27K+ cards)
  • eBay sold price verification (raw, PSA 9, PSA 10)
  • Japanese card pricing
  • Binder mode. Snap a page, get up to 9 cards priced
  • Sales logging with daily stats and revenue tracking
  • Scan history synced to cloud (Supabase)
  • Gamification. 10 levels, 14 achievements, scan streaks
  • Pro subscription via Paddle ($7.99/mo or $59.99/yr)
  • Email + Google OAuth sign in
  • Server-side scan limit enforcement (20/day free tier)
Security
  • XSS escaping on all user-facing data
  • Content Security Policy headers
  • CORS restricted to vendbro.com
  • Supabase RLS prevents tier self-promotion
  • Paddle webhook HMAC verification (fail-closed)
  • SSH hardened, Postgres locked to localhost