See the app at https://ShelfScan.io!
Read about workflows and using the app here!
Read about what you can do with it - and watch demo videos - on the BGG blog.
ShelfScan is a board game UPC barcode scanner and board game collection management web app.
Scan game barcodes with your mobile device camera or webcam, look up game data via the GameUPC API, and interact with your BoardGameGeek collection — all from the browser.
With just the app, you can:
- Scan game UPCs and identify games via the GameUPC database
- Audit your collection by comparing physical games against your BGG data
- Load and browse your BGG collection with rich filtering and sorting
- View scan history and see which scanned games are missing from your collection
- Help update the GameUPC database by verifying game/version associations
A browser extension for Firefox/Android and Gear/iOS and compatible desktop browsers works alongside the app and enables direct BGG updates. Updating is available to BoardGameGeek supporters with a low-cost subscription:
- Add games to your BGG collection (individually or in bulk via Batch Scan)
- Post games for sale in the BGG GeekMarket
- Log game plays on BoardGameGeek
- Set previously owned, for trade, wishlist, and other statuses
- Much more — see the Workflows page
A plugin manager lets you integrate other web apps and sites (e.g. BG Stats, Dust & Dice, Dice Tower) with ShelfScan using simple JSON definitions.
| Language | TypeScript 6 |
| Framework | Next.js 16 (App Router, Server Actions) |
| UI | React 19 |
| Styling | Tailwind CSS v4 + DaisyUI v5 |
| Scanning | @react-barcode-scanner/components backed by @undecaf/zbar-wasm |
| State | Redux Toolkit + React Context |
| Persistence | Dexie (IndexedDB) + localStorage |
| Data APIs | BGG XML API v2 · GameUPC JSON API (via gameupc-hooks) |
| Testing | Vitest |
| Package manager | pnpm |
| Deployment | Vercel |
At this time the app is not licensed for modification. Message me if you'd like to discuss contributing or forking the app.