NIGHTS · BUILD NOTES

Shelf.music

A private, self-hosted browser for my record collection: the cover wall, instant search, live market prices, and a wantlist that knows which Chicago shops to check.

BUILT
JULY 2026, STILL MOVING
STACK
NEXT.JS 16 · REACT 19 · TAILWIND 4 · PYTHON PIPELINE · VERCEL
SHAPE
STATIC-FIRST · NO DATABASE · EVERY ROUTE PRERENDERED
STATUS
LIVE · REAL SHELVES PRIVATE · DEMO SHELF PUBLIC
THE DEMO SHELF STAYS OPEN
THE WALL · SEARCH → FACETS → RECORD DETAIL → FLIP

01 · WHY IT EXISTS

Discogs knows what a record is. It doesn't know what I paid for mine, which shelf it lives on, or whether the copy I still want turned up in a shop on Milwaukee Ave this morning.

My collection sat in three places: a Discogs account, a purchase ledger, and a taste system. Answering "what do I own and what is it worth" meant joining them by hand.

02 · WHAT I BUILT

THE WALL

The interface is a record-store shelf: kraft board, marker ink, masking-tape titles. The facets are divider tabs, every sleeve is face-out, and opening a record and hitting next flips through the bin the way your thumb would.

A wall of album covers, edge to edge, on the demo shelf
THE COVERS ARE THE INTERFACE · DEMO SHELF

SEARCH

Search is lexical and explainable: every word you type has to hit every record that comes back. Fuzzy matching runs only when the plain pass finds nothing. The first build was fuzzy-first, and daft pulled eleven records, three of them real. It returns three now.

THE MARKET LAYER

A collector records the lowest live Discogs ask for every record on the shelf, nightly, so each record page carries a real price series instead of a guide number. Hunt pages break a want into its pressings: sold history in pencil, live asks in ink.

A record page on the demo shelf: sleeve art, a spec table, and a market card with a generated lowest-ask figure above its price history
A RECORD PAGE · SPEC TABLE + MARKET CARD · DEMO SHELF

THE DIG

Eleven Chicago shops get walked nightly and matched against the wantlist. When nothing turns up, the page says so. A shop that didn't answer is recorded as a fact, not dropped. When something crosses a rule, a typed alert lands in Telegram with the trigger quoted.

THE HUNT · WANTLIST → HUNT PAGE → PRESSINGS → DIG SHEET

THE DEMO SHELF

Everything on this page comes from the demo shelf, which anyone can open, no sign-in. The records are real; the prices, dates, shops and grades are generated, so the demo shows the whole product without showing anyone's money. A taped-on SAMPLE DATA slip says exactly that on every page.

THE FRONT DOOR · LANDING → NO SIGN-IN → THE DEMO SHELF OPENS

03 · HOW IT HOLDS

The data brain owns the ledger, the taste system, and the Discogs write path; the site is a projection of it. Data flows one way: the pipeline commits JSON and cover art, the site build reads them, and no route calls Discogs at runtime. Tests on both sides hold it to that.

The demo shelf with the price layer on: a green price sticker on the corner of every sleeve
THE PRICE LAYER · STICKERS ON · DEMO SHELF
THE NUMBERS · STATS → FLOOR VALUE → STICKERS ON EVERY SLEEVE

The site replaced discogs.com for this collection. The real shelves stay private by design; the demo shelf stays open.