Wax Wars build plan ← mockup
Build plan

How Wax Wars
gets built

A card game where the cards are the real vinyl you own. Rarity is counted from how few people hold each pressing; battles are decided by genre matchups written by real music history.

Phase 0 shipped — this page & the mockup are live

The idea

Where it came from

It started as a text thread. Photograph a record you actually own and it becomes a collectible card. Its power is set live by how few people in the system hold that exact pressing — "you played the original Doors album, critical hit, only 3 people in the world have this." The pressing matters: the OG Doors LP is not the reissue with "Riders on the Storm." On top of the collection sits a battle game where genre is the type, and the strengths and weaknesses between genres are grounded in real events — Punk beat Disco at Disco Demolition Night; Grunge ended Hair Metal.

Locked decisions

Chosen up front, so the build has no forks

Scope
Full card battle
Not just a tracker — collection, rarity, and the game.
Ownership proof
Photo + pressing proof
AI-verified in-hand photo, plus a runout/matrix etch and a one-time code written in the shot. Rarity has to be hard to fake.
Catalog
Discogs API
Canonical pressings, cover art, and genre. Rarity counted per Discogs release ID.
Battle modes
All three
Solo / PvE, async + leaderboards, and realtime PvP.

How it works

The three mechanics that carry the game

1 · Rarity is counted, not printed

A release's tier is set live by its number of distinct verified owners. Fewer owners → higher power and crit chance; the top tier is a "critical hit" play. As more people scan a record it gets less rare, so the meta shifts over time — but a resolved match snapshots the rarity it was played at, so results stay reproducible.

2 · Ownership is verified end-to-end

Reverse-image search identifies the pressing and confirms it against Discogs. A two-image AI compare checks the user's photo really is that album (with a confidence gate). Then the anti-cheat: the app issues a one-time code the player writes on paper in the shot, alongside the runout/matrix etching — both read back automatically. No proof, no card.

3 · Genre decides the fight

One pure, tested resolver runs every mode. Card power (from rarity) sets the base; the genre matchup multiplies the hit; a crit roll can swing it. The type chart is the moat — every edge cites the real event or lineage behind it, and it grows as the catalog does.

AttackerDefenderEffectReal lore
PunkDiscoSUPER ×2.0Disco Demolition Night, Comiskey Park, 1979
GrungeHair MetalSUPER ×2.0Nevermind (1991) ended the Sunset Strip era
Hip-HopDisco / FunkDRAIN ×1.5Built from the breaks of these records
New WaveDiscoSUPER ×1.5Filled the void as disco collapsed
PunkProg RockSUPER ×1.5A direct revolt against prog excess
Teen-PopGrungeSUPER ×1.5Late-'90s TRL era buried the grunge sound

Build order

Everything is in scope — this is the sequence

0
Interim live pageThis mockup at / and this plan at /plan, on a real public host.
✓ shipped
A
FoundationApp scaffold, SSO login, database, Discogs catalog, the verify pipeline, collection view, and the live rarity engine.
next
B
Battle coreThe pure resolver with locked math, the genre type-chart + lore, deck builder, and Solo / PvE scenarios.
planned
C
Async + leaderboardsStored challenges, ELO ratings, and global / friend rankings.
planned
D
Realtime PvPMatchmaking and live duels over the existing realtime messaging service.
planned
E
Ship the appThe real app replaces this holding page on the same host, with an admin panel for catalog and lore curation.
planned

Under the hood

How it fits the existing setup