Deciding what to do with friends shouldn't take longer than actually doing it.
Connect your Spotify, Letterboxd, Goodreads, Steam, and food photos. Wavelength builds a living taste profile, matches you with friends, and lets an AI mediator negotiate plans on your behalf.
cd backend
python3.11 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # fill in real values
python3.11 -m uvicorn main:app --reload
# Runs at http://localhost:8000 — docs at /docscd frontend
npm install
cp .env.example .env # fill in real values
npx expo start --clear
# i = iOS simulator | a = Android | scan QR = Expo Go| File | Required keys |
|---|---|
backend/.env |
MONGODB_URI, SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET, JWT_SECRET, GEMMA_API_KEY |
frontend/.env |
EXPO_PUBLIC_API_URL, EXPO_PUBLIC_SPOTIFY_CLIENT_ID |
Stack: React Native + Expo (TypeScript) · FastAPI (Python 3.11) · MongoDB Atlas · Google Gemma 3-4B · Fetch.ai uAgents
Connect platforms from your profile screen. Each integration is normalized into a unified taste vector stored in MongoDB:
- Spotify — OAuth, fetches top genres/artists/tracks
- Letterboxd — ZIP export upload
- Goodreads — CSV export upload
- Steam — Steam ID lookup
- Food — photo screenshots analyzed by Gemma vision
- Other — free-text likes/dislikes
When two or more users connect, a Neutral Agent (Gemma 3-4B) computes a Blend across six categories — music, film, food, books, games, and other. Each category shows an overlap score, a summary, and shared favorites. Falls back to algorithmic Jaccard similarity if Gemma is unavailable.
Every friend connection creates a shared Palette with two tabs:
- Palette — compatibility breakdown per category
- Chat — real-time group chat (3s polling); the AI mediator's negotiation steps appear inline
Trigger planning with a natural language prompt. A multi-agent loop runs in-process — Mediator + per-user agents exchange preference summaries, proposals, and votes (max 3 rounds). Results are written directly to the chat thread.
A floating button on every authenticated screen opens a personal AI assistant that knows you and all your friends' taste profiles. Ask it anything: "Which of my friends would enjoy a Clairo concert?" or "It's Alex's birthday — gift ideas?"
Stop negotiating. Start experiencing.