Inspiration 💭

From Spotify

We set out at Delta Hacks X to make a project that would be fun to use. More importantly, however, we wanted to make a project that would help people. We wanted to connect people through a shared medium, and the most obvious answer was music. Post-pandemic, Spotify reports that they have 31% more active monthly users year by year. Nowadays, it's hard to find someone who doesn't listen to music. Music isn't just a a tool to beat boredom, or stay focused. Music brings people together, especially so in times of need. Tone is a minimal tool that puts the emphasis on two things: people, and the music they love.

What it does 💻

Tone uses your Spotify playback history to connect you with people around the world that have similar history to you. You can then have a conversation with that user while listening to a song you both like, allowing you to form a connection through the magical medium of music. When you guys are done talking, Tone will add the user you talked with to your friends list, allowing you to chat with them whenever you desire.

How we built it 🚀

Tone is bootstrapped with Next.JS and written in TypeScript. Prisma is used as a middleman to the PostgreSQL database, and Tailwind CSS is used for all the styling. Spotify's Web API is used to retrieve your stats and store them in the database, allowing custom algorithms to calculate your top three genres. We then crawl the client database to find another person who is into the same music as you, making sure you haven't matched with them before. The project is hosted on Cloudflare, and Redis is used to check which of your friends are online.

Challenges we ran into 🧱

Spotify's Web API is very particular with it's routes and syntax. A couple times throughout the project, we forgot a line of code here or there and spent hours debugging as a consequence. Additionally, we weren't able to meet all of our goals for the app, leaving a couple of features out due to time restraints.

Accomplishments that we're proud of ✅

The chat and UI function flawlessly, and we're pretty proud that we were able to ship a clean, functional product in 24 hours after starting from scratch.

What we learned 📖

We learned that you should always thoroughly read documentation before using API's. Aside from that, this was our first time using Redis and Cloudflare, both of which worked well for our app.

What's next for Tone ➡️

Tone isn't stopping here. Soon, you will be able to locate concerts to attend with your nearby Tone friends, ones that your circle can enjoy together. To improve user experience, we are planning to implement sentiment analysis using an LLM to block negative users from being added to friend lists.

Built With

Share this project:

Updates