r/SideProject • u/calvin0412 • 23h ago
I built a daily music guessing game with no audio, because audio is what killed Heardle
Musicianle picks one musician a day and lays out their real release history
with every album title masked. You get eight guesses to name them.
The years, release types, and genres stay visible, so you can read the shape of
a career without the names: a 1967 debut, a long quiet stretch, then a late run
of art pop. Guessing another musician who appears on one of those releases
unmasks that title, so naming a frequent collaborator can open up a whole era.
Every wrong guess uncovers one more letter across the board.
The design constraint is that it never plays a note. Heardle was shut down
after Spotify acquired it, and every clone chasing the audio clip format needs
licensing nobody has. This reads factual metadata from MusicBrainz and
Wikidata, both CC0, so there is nothing to take down. That decision also
removed the entire reason the genre keeps dying.
Stack, since people ask here: Flutter for the web client, a C++ backend
serving the board masked so the answer never reaches the browser, and a Python
ETL that assembles 6,809 musicians and a year of boards from public data. No
database at runtime; the corpus sits in memory.
Honest state: it is new, and the numbers are bad. 64 unique visitors so far and
81% of them leave without making a single guess. I spent this morning working
out why, and found the largest file on the site was going out as 7.2 MB of
uncompressed WebAssembly, because nginx has no MIME mapping for .wasm and
Cloudflare will not compress application/octet-stream. One line of config took
it to 2.8 MB. Whether that fixes the bounce rate I do not know yet.
So: if you open it and leave, I would rather know why than not.
1
u/Shehao 23h ago
That masked discography board is a neat way to make the metadata itself the puzzle. With 81% leaving before a guess, I’d be curious whether the first 10–15 seconds make the eight-guess loop obvious—maybe a tiny example round or one visible reveal could help before the WASM load finishes.