deployed & live · data engineering · 2026

Music Growth


problem solved

Popular API last.fm only gives cumulative stats for artists. No growth rates, historical data, or way to compare against other artists. Music Growth solves this problem by snapshotting 37k+ artist's listener count weekly. It also captures an artist's genre, calculates their size band, and notes similar artists.

This tool is designed to help curious analysts or the artists themselves observe their own listener growth over time, as well as to compare themselves to other artists of similar size and genre. This is made possible through a Next.js frontend, music.deanslist.dev , where you can query individual artist statistics as well as overall leaderboard and genre-related data without needing to know SQL.



architecture

Last.fm API read-only, key auth
↓ Python snapshots
Postgres hosted on local postgres
↓ dbt staging + marts
Serving layer pre-joined views
↓

A crontab runs the pipeline every Sunday at 9 AM UTC.


♜ stack ♖

languages

python sql typescript

ingestion & transformation

dbt dbt-postgres

infra & storage

postgres

automation

crontab

frontend & hosting

next.js 15 tailwind hetzner caddy