One of my biggest joys on a weekday is entering a listening bar in Berlin — to find a community who just wanna stay in silence, energies united, and listen to music together. So, when Kwia closed, I wanted to bring its vibe to my online community and hence birthed Listening Room.
My first project built using Claude Code, taken from idea to working app. I started with a responsive design in Figma, pulled it into Claude using the Figma MCP connector, and refined the component structure and interactions from there before writing any real code.
It’s a React (Vite) client backed by an Express/Node server.
Spotify integration uses the standard OAuth 2.0 Authorization Code flow: the host authorizes through Spotify’s login screen, the server exchanges the code for an access and refresh token pair, and persists them to disk so the session survives a restart.
The server polls Spotify’s /me/player/currently-playing endpoint to surface live track data and cover art on the client. A separate, password-gated admin CMS gives the host structured control: a reorderable queue of up to six tracks, a duration setting per item, and start/stop position control within each track.