Projects

QueQueue

A Spotify queue manager for saving the right sequence of songs and bringing it back when the moment calls for it.

Vue.js Django PostgreSQL Celery Redis Spotify API Docker

Why I built it

I kept losing Spotify queues that felt unusually right: the order from a great gym session, a late-night drive, or the stretch before a friend interrupted the music. A playlist preserves a collection, but what I wanted to keep was the particular sequence I had already put together.

QueQueue started as a direct answer to that small annoyance. It lets me save a queue while it is good and restore it later without rebuilding the order by hand.

What it does

The app connects to Spotify and gives a saved queue a life beyond the current listening session. The interface is built in Vue, while Django handles the API and PostgreSQL stores the account and queue data.

There is a public deployment at quequeue.app. Spotify currently limits login to users I add to its authorized list, so the short walkthrough is the easiest way to see the complete save-and-restore flow.

Restoring a queue

Putting a longer sequence back into Spotify is not a good fit for one web request. QueQueue hands that work to a Celery worker, with Redis coordinating the background job, so the Django API can respond without waiting for every song to be restored.

That separation kept the pieces straightforward: the browser handles the interaction, the API owns the application state, and a worker takes care of the slow operation.

What I learned

A tiny personal frustration can be a useful reason to build a complete product. QueQueue pushed me past implementing a feature in isolation and into making the frontend, API, database, background worker, Spotify integration, and deployment behave as one application.

It also made the constraints of third-party platforms tangible. The app works because Spotify provides an API, but who can sign in is still shaped by Spotify's authorization rules. Building around that boundary was as much a part of the project as building the queue manager itself.