Matthew's Blog
POSTS 4 BUILD 2026-10-23

Scrobbled - A scrobbly adventure

Lets go back, back in time to the distant past of 2008, Smash Brothers was Brawl, the financial crisis peaked, Apple launched the App Store and Cassini-Huygens flew through the icy geysers of Enceladus. Heady days indeed. More importantly I opened a Last.FM account and sent my first scrobble!

Scrobbling is at it’s core sending an event to a service to log the fact that you listened to a music track. Since then the social parts of the website have been slowly stripped to nothing, the inbuilt music player has been replaced with YouTube Music (another day another topic on that disaster, and the loss of utility of streaming music services). The moveing of the remaining useful bits behind a premium subscription has also pushed me further and further away.

So where are we? I really like gathering play data on music. Being able to summarise what I listen to over time has become somewhat important to me. I kept meaning to spend some time building a service for this, but never quite being able to prioritise time for it over everything else life throws my way. Then, enter Claude.

Scrobbled.uk

I hate the concept of a minimum viable product. A vendor reselling cut price cupcakes on the street corner could be viewed as the MVP of a bakery. Doesn’t make it good, or something that people would want. So a quick jot down of what I want to actually achieve could be seen as

  • Collect play data using the same interface as Last.FM to make it easily compatible
  • Show play data for given periods
  • Show now playing
  • Import existing data from Last.FM
  • User authentication and simple privacy expectations
  • This to work with navidrome (the subsonic server I’m currently using)

We’ll be using Python, Typescript and React as this is to be built quickly in gaps of time I have. I’ll be able to review these quickly as Claude generates the code.

So we set Claude off in plan mode to do the Last.FM interface, user auth and the beginnings of the UI. The plan it gave can be seen at https://github.com/daubers/Scrobbled/blob/main/docs/design/initial_plan.md . There where a few iterations of adding monitoring, notifications and what not, but eventually it settled on this seemingly sane plan. I let it run and only had to intervene a few times.

Once I’d got this, I went and grabbed a domain and served it through my home server setup so I could access it over the interwebs (Domain points to a VPS, VPS has an OpenVPN link into a network in my home, which it can access a system serving it via Docker. But thats not important right now).

Eventually I get to this

Scrobbled UI

I’ve also expanded this a bit to include automatic deployment via my gitea instances CI runners. An android app so you can scrobble whats playing around you, a design system that can be shared, and a Navidrone plugin.

While I could have made these things myself, it would have taken literal months, maybe years as there are other constraints on my time. Claude has enabled me to do it, when I might not have been able to otherwise. Certainly not claiming the code will be good, but it works. Much like Ikea furniture compared to some master craftmens.

Anyway, I leave it here for others to take and do with as they wish.