Thirty-five years of games, on one virtual shelf.
I wanted an easy way to see all my games in one place, let new and old friends pick what we'd play before they came over, and keep track of our game nights. So I rebuilt my whole collection of 275 games and 292 expansions as a virtual IKEA Kallax: searchable, filterable, with a how-to-play tutorial a tap away and a tracker that settles who actually won. It was the first thing I ever built with Claude.
Great data in a dated home.
I've collected and played board games for 35 years, and there is really only one name in the game to track all your stats AND have correct, up-to-date information on your game: BoardGameGeek. BGG has the play data, information on the game itself, the rankings, and more!... and those stats are genuinely hard to get anywhere else. The problem is its interface is dated, and my collection sits there on their terms. The handful of other collection sites are basic and locked down.
I wanted something of my own. Something that was genuinely nice to look at, customizable, and built around how my group actually plays. The catch — this was the first thing I'd ever built with Claude, and I had no idea what I was doing.
No plan — so I let it teach me.
With no experience to lean on, I let each problem point to the next. First: get the data. BoardGameGeek's API is dead; it 401s on everything. So I pointed a real headless browser at the site and scraped every game, pulling the correct box art, player counts, complexity and mechanics.
Then I wanted to know how to play the ones we hadn't tried, so I built a scraper across five YouTube tutorial channels that scores every video and keeps the single best "how to play" per game. With the shelf solid, the next question answered itself: track what we actually play — which became a full game-night tracker on a real database.
Walk the build — milestone by milestone
The whole thing came together one problem at a time. Roll the die and move the meeple along the board to see how it happened — and the numbers it racked up.
Two tools in one.
The shelf is a virtual Kallax where every box sits at its real relative size, flips open in 3D, and filters down by players, length, complexity or whether there's a tutorial. The tracker turns game night into a record: sessions, players, win leaderboards, head-to-heads and charts over time.
Live, in use, and settling arguments.
It's 100% functional and live. Since it went up, my group has logged 9 game nights, 30 games played and 8 players' stats — so "who won last time?" finally has an answer. And the whole 35-year collection is on the shelf: 275 games, 292 expansions, 141 with a tutorial a tap away.
- Virtual Kallax — real box sizes
- 3D box-flip lightbox
- Search & smart filters
- 141 how-to-play tutorials
- Every expansion tracked
- Game-night tracker
- Player profiles & leaderboards
- Head-to-head records
- Charts over time
- Full BoardGameGeek metadata
Getting 275 games — when the API said no.
The data lived on BoardGameGeek; prying it loose was the hard part. Here's the pipeline that fills the shelf — and finds the single best way to learn every game.
The official API returns 401 on everything — a dead end.
A headless browser reads BGG's pages directly — with the correct box art.
Every base game and expansion, with full metadata.
A scraper scores five YouTube channels to pick the single best tutorial.
My first build — and it stuck.
I had no idea what I was doing, so I just kept shipping — and it came together fast. From an empty shelf to a full game-night tracker in 2026, then grown ever since. Pulled straight from the commit history.
A virtual Kallax
The wood-frame shelf, a responsive layout, the first ~130 games with real box art, and image hosting on Vercel Blob.
Real data, real boxes
A BGG scraper pulling descriptions, stats and designers for 160+ games, box art for every one, the split-flap game counter, and a BGG-style lightbox — past 200 games.
Browse it like a pro
The filter bar (players / length / complexity) and sort, search with prev/next, the 3D box-flip lightbox, the Slate & Steel look, and how-to-play tutorial links.
From shelf to game nights
The YouTube tutorial scraper, then the whole Game Nights side (sessions, leaderboards, Head-to-Head and player profiles, with PIN protection and photos), and the rebrand to Shelfie.
Live, and in weekly use
Image hosting migrated to direct BGG URLs, metadata fixes, and new games as the collection grows — 275 and counting.
I want something like this!
Polish — then every collector's shelf.
It works, but it's not finished. Next up: sharper graphics and animation, and tightening the rough edges. Then the bigger idea — make it white-label so any collector can stand up their own, and point the same engine at other collections entirely: video games, DVDs, whatever fills your shelves.
Game data and box art are pulled from BoardGameGeek; how-to-play tutorials are surfaced from Watch It Played, RTFM, Before You Play, Geek & Sundry and 3 Minute Board Games. Built for personal use, as my own collection.
Got something that needs building — fast?
This is exactly the kind of thing I love to make. Let's talk about yours.




