Echostats is a Spotify stats dashboard. You upload your extended streaming history, the app stores it, and from then on it syncs with your Spotify every time you open it, pulling in your listening history and turning it into stats: top artists, top songs, a song you've probably forgotten about, a "song of the day," and more.

Numbers on a dashboard only go so far, though. A user can see that an artist sits at the top of their list, but not necessarily why that matters or what it says about their taste. That's the gap I wanted the AI chatbot to fill — a chat interface inside Echostats that can explain the stats in plain language and give the user deeper, more personal insight into their own music taste, instead of just handing them a chart.

Technical Decisions

The chatbot runs on Google AI, specifically the gemini-3.1-flash-lite model, set as the default in getGoogleConfig. I didn't stick with my first choice the whole way through — the model got updated partway through the build as I iterated.

Streaming was the original plan. A chat interface almost always benefits from a typewriter-style response, where text appears as it's generated instead of arriving all at once, and that's how I initially built it. But Vercel's hosting environment introduced limitations that made streaming unreliable in production, and rather than chase a workaround, I made the call to switch to a normal, non-streaming response. The user still gets an answer, just not the typewriter effect.