Your Personal AI Music Curator.
SonicDiscovery is a next-generation music recommendation engine that goes beyond simple "similar songs." It connects to your Spotify account to offer immersive, context-aware, and aesthetic-based music discovery experiences.
✨ New Architecture:
- Frontend: React (Vite) + TailwindCSS + Framer Motion (Premium Glassmorphism UI)
- Backend: FastAPI (Python) + Spotipy
Note: The original Streamlit implementation has been moved to the
legacy-streamlitbranch.
- Dashboard: Interactive stats, "Audio DNA" visualization, and "Your #1s" highlights.
- Discover: Generate personalized recommendations based on your listening history (Top Artists + Top Tracks model).
- Mood Tuner: Fine-tune your recommendations with "Sad <-> Happy" and "Chill <-> Hype" sliders.
- Time Travel: Warp to specific decades (60s, 70s, 80s, 90s, 00s, 10s) and explore the hits of that era.
- Vibe Teleporter: Generate playlists for specific contexts (e.g., "Tokyo + Rain + Night").
- Aesthetic Generator: Curate music based on internet aesthetics like Vaporwave, Dark Academia, and Cyberpunk.
- Alternate You: Meet your musical doppelgänger from a parallel universe.
- Node.js (v18+)
- Python 3.10+
- A Spotify Developer Account
-
Clone the repository
git clone https://github.com/yourusername/sonic-discovery.git cd sonic-discovery -
Backend Setup (in
server/directory)cd server python -m venv venv # Windows .\venv\Scripts\activate # Mac/Linux # source venv/bin/activate pip install -r requirements.txt
Environment Configuration: Create a
.envfile in the project root (notserver/):SPOTIPY_CLIENT_ID='your_client_id' SPOTIPY_CLIENT_SECRET='your_client_secret' SPOTIPY_REDIRECT_URI='https://sonic-discovery-update-pi.vercel.app'
-
Frontend Setup (in
client/directory)cd ../client npm install
You need to run both the backend and frontend terminals.
Terminal 1 (Backend):
cd server
python -m uvicorn main:app --port 8501 --reloadTerminal 2 (Frontend):
cd client
npm run devOpen http://localhost:5173 to start discovering!