Just.Listen: A music player built for one
Summary
- Personal project — a local music player with no ads, no tracking, no bloat.
- Skeuomorphic-inspired UI heavily influenced by Teenage Engineering.
- Everything fits in one mobile screen — no tabs, no menus, no clutter.
- Built with vanilla HTML, CSS and JS — intentionally no frameworks.
The starting point
I’ve tried a lot of music apps. Every single one falls short somewhere. Even the good ones try too hard — recommendations, social features, endless settings. Analysis paralysis, basically. Sometimes you just want to play your local music without a hundred buttons getting in the way.
Just.Listen is a personal project I did for fun. An exercise in keeping things simple. I designed and built it myself, from concept to code. No stakeholders, no deadlines, no metrics. Just me and my music library.
Limits
My stack was limited to HTML, CSS and vanilla JS. I know Astro, but that was overkill for this. The constraint was intentional — I wanted to see what I could do with the basics.
Process and decisions
Since I didn’t need to validate anything with anyone, I skipped research and went straight to building. The design and scope were already clear in my head. I knew exactly what I wanted: simple, focused, different.
I considered adding YouTube Music integration. It would be useful, but it’s outside my current skill set and I didn’t want to rely on AI to debug something I couldn’t fully understand. So I dropped it.
Keeping things simple was the whole point. Any feature that didn’t serve that goal was noise. The hardest part was actually stopping myself from adding more — that urge to keep piling on features is real, and it takes discipline to fight it.
Friends and family helped with testing, which was enough for a project this size.
Craft and execution
I’m a big fan of the almost skeuomorphic style Teenage Engineering uses in their products. That was my main visual reference. I wanted the interface to feel tactile and intentional, not like another generic music player.
The hardest design problem was fitting everything on a single mobile screen. No tabs, no scrolling between sections. The player, the library, the controls — all there at once. It took a lot of iteration to get the hierarchy right.
Micro-animations gave it that polished feel. Small touches that make the app respond to what you do without getting in the way.
No design system needed here. The scope was tight enough that custom components were the right call.
Results and impact
No metrics, no KPIs, no user surveys. That wasn’t the point.
What I got out of it was confidence. Confidence to take on similar projects with bigger scope and more constraints. And a reminder that you can make something visually different without copying Spotify or Material Design — which is the skill I’m taking into my next role.
Reflection
I wouldn’t change a thing. This was a pure creative exercise, and it served its purpose.