Inspiration
We love music apps that feel personal, but existing platforms either drown users in infinite playlists or rely on opaque recommendation algorithms. We wanted something more human, more fun, and more immediate.
So we asked: what if discovering music felt like Tinder?
Tuneder was born from the idea of making music discovery playful, social, and deeply personalized.
What it does
Tuneder is a Tinder-style music discovery web app where users swipe right on tracks they love and left on tracks they don’t. Under the hood, every swipe trains a personalized recommendation engine that adapts in real-time.
Core features include:
- Swipe-based discovery: Popular seed tracks are shown first, then refined by user behavior.
- Smart search: Prefix-based Firestore search with custom ranking for relevance.
- Dynamic music library: Automatically builds a library from swipes and search adds.
- Music Personality Test: Generates a user profile based on genre diversity, energy, mood, and mainstream metrics to form a unique “archetype.”
How we built it
- Backend: Flask (Python) with a clean app-factory structure, Blueprints, and service layers.
- Database: Firebase Firestore
- Matching Engine:
- Seed selection using popularity filtering and round-robin genre sampling.
- Real-time refinement using genre preference scoring + feature similarity + optional search bonuses.
- Seed selection using popularity filtering and round-robin genre sampling.
- Personality Engine: Computes energy, valence, mainstream score, and diversity from the user’s library; identifies top genres and representative tracks, then produces a structured personality archetype.
Challenges we ran into
- Designing a recommendation algorithm that felt good with limited time and no full ML stack.
- Firestore data modeling, especially ensuring queries stayed cheap and scalable.
- Balancing seed randomness vs. personalization: too random felt chaotic, too personalized felt repetitive.
- Avoiding over-engineering during a fast-paced hackathon while still maintaining clean architecture.
- Search ranking that felt natural without external APIs.
Accomplishments that we're proud of
- Built a fully functional matchmaking engine from scratch using nothing but Firestore data and swipe aggregates.
- Designed a clean backend architecture that could realistically scale beyond a hackathon demo.
- Created a surprisingly insightful music personality test using only audio features and library data.
- Delivered a backend that’s flexible enough for a polished frontend to plug in seamlessly.
- Our algorithm genuinely felt personalized after just a few swipes.
What we learned
- How to design adaptive recommendation systems without ML frameworks.
- How to structure a larger Flask project using factories, services, and modular layers.
- How to leverage Firestore effectively for user-centric apps with dynamic interactions.
- The importance of balancing usability, performance, and developer speed in hackathon environments.
- That music preference signals (genre, valence, energy) can be surprisingly powerful even in simple models.
What's next for Tuneder
- Spotify login + playback integration
- Shared sessions for “music compatibility” between friends
- Better recommendation models using embeddings or Spotify’s API
- A polished React frontend with real animations and swipe UX
- Social features like matching users by taste archetype
- More exploration modes: mood-based, genre-only, or “surprise me” mode.
- The next Letterbox for Music??: we want to deliver a rating system to provide a platform for music enthusiasts
Built With
- figma
- firebase
- firebase-admin
- firebase-firestore
- flask
- flask-cors
- google-cloud
- json
- python
- react
- react-(planned)
- rest-apis
- spotify-tracks-dataset
- typescript
Log in or sign up for Devpost to join the conversation.