joonlovesmusic • Live 2025

A website that scores and maps every song I love

The joonlovesmusic home page: a red pixel wordmark over a tangle of black line drawings, with the site's sections listed underneath.
Role
Product Design, Development
Timeline
December 2025 to July 2026
Team
Solo
Tools
Figma, Next.js, Supabase, Spotify API, Google Maps API, Claude Code, Cursor
Live
Visit project ↗
Songs in the catalog
1,030
Of Spotify Wrapped imported
10 years
From empty repo to a live site
8 days

joonlovesmusic is a live site where I score every song I care about out of 100. It holds 1,030 songs and ten years of my Spotify Wrapped. It went from an empty repo to live in eight days.

I designed it and built it with Claude Code and Cursor.

Problem

Streaming apps know what I play, not what I think of it.

Spotify knows which songs I play most. It doesn't know which ones I think are great, or how that changed.

Most rating sites die the same way. Adding a song is a chore, so people stop. Adding a song here had to be nearly free.

The ratings page sorted high to low: Summer's Ending Soon, Cirrus and Neptune at 99, Cold Divide and 1973 at 98.
The ratings page, sorted high to low. Every score is mine.

Process

Adding a song should take one paste, not ten fields.

I built a private admin page for speed. Pasting one Spotify link fills in the title, artist, album, cover and date.

That one choice keeps the site growing. Adding a song costs almost nothing, so I actually do it.

One pasted link fills the cover, title, album, artist and date.
A wall of square badges on the song page If I Lose Myself, one per Wrapped year, each styled after that year's cover with the rank on a plate.
A badge for every Wrapped year, built in CSS.

Process

A strict pixel style made every new feature easier to design, not harder.

The look is strict: a pixel font, hard borders, no round corners, flat color. Scores are color-coded, so you can read a page at a glance.

That rule made every new feature easier to design.

A song page for Summer's Ending Soon: cover art, a green 99 score block, a compact Spotify player and an Awards section below.
A song page: hard borders, flat color, the score loudest.

Reflection

My stats page sat blank in production for nine days. Now I check live.

It looked fine on my laptop but showed nothing live, because a key was saved empty.

Now I check the live site, not just the push.

Visit joonlovesmusic ↗
The Spotify stats page on a wide screen, with top tracks, top artists and recently played side by side in three columns.
The stats page that sat blank live for nine days.