Live — 2025—26
Stream to Shelf
Find where to actually buy the music you stream

- Role
- Design, engineering, content (solo)
- Built with
- Next.js 16, React 19, TypeScript, Deezer API, Songlink
Why I built it
I wanted a record on a shelf rather than in a playlist, and working out who actually sold it took six browser tabs and a lot of scrolling. Streaming handed everyone everything and quietly killed the habit of buying any of it, and the shops still out there don't make themselves easy to find.
So this does it in one go. Type an artist, pick a release, and you get everywhere that sells it, split by what you come away with: a download, or something you can hold.
Swapping the search engine mid-flight
The first version ran on Spotify. Best catalogue there is, but every search needs an authenticated token and the rate limits assume an app with signed-in users. What I've got is an open search box that anyone can hammer.
Deezer covers nearly as much and needs no handshake at all on the path a visitor actually takes, so search moved across. Buy links still come back from Songlink, so the whole swap stayed inside one route. It got quicker and cheaper to run too, which I hadn't planned on.
Show the record before the shops
Songlink takes a second or two to answer. The first version sat on a spinner for all of it and then dropped the lot on screen at once, so you'd click an album and stare at nothing, not entirely sure you'd picked the right one.
But the art, the title and the artist are all known the moment you click — they came from the search you just ran. So they ride along with the click now and paint straight away, and the spinner only covers the part nobody knows yet: who's selling it. It takes exactly as long as it did before and feels much shorter.