DING

About this project
A personal music diary where users log their listening history, rate albums and individual songs (track by track, on a 0.0–10.0 scale), and discover music through friends’ profiles. Built with Next.js and Supabase, with metadata search through MusicBrainz and high-quality artwork from Cover Art Archive. It includes a social layer: users can comment on each other’s reviews, turning the diary into a shared space for music discovery, beyond a private listening log.
Key Features
- Granular rating system: Rate a whole album or individual tracks on a 0.0–10.0 scale.
- Multiple reviews per album: Record repeat listens over time.
- Integration with open external APIs: MusicBrainz and Cover Art Archive provide metadata and high-quality artwork.
- Public profiles with social features: Users can comment on each other’s reviews.
Challenges
The biggest challenge was designing a data model that supported ratings at different levels (albums and songs) without duplicating logic or slowing down searches. Working with MusicBrainz also meant handling inconsistent metadata from an open, community-maintained database.
What I learned
Adding social features — comments between users — meant moving beyond a simple CRUD application to think about permissions, basic moderation and relationships between users through Supabase Row Level Security.
Additional design gallery
A closer look at other key details of the project’s design and interface.


