A real-time collaborative queue app for Spotify, built with Next.js, Prisma, and Supabase.
- Host a room and let guests add songs to your Spotify queue
- Real-time queue updates
- Search and add tracks from Spotify's library
- Guest mode - no login required for guests
- A Spotify Developer account
- A Vercel account
- A Supabase account
- Create a new project in Supabase
- Once created, go to Project Settings > Database to find your database connection string
- Copy the connection string and save it for later
- Go to Spotify Developer Dashboard
- Create a new application
- Add your production domain (and localhost for development) to the Redirect URIs:
http://localhost:3000/api/auth/callback/spotifyhttps://your-domain.com/api/auth/callback/spotify
- Save your Client ID and Client Secret
- Fork this repository
- Go to Vercel and create a new project from your fork
- During the import, add the following environment variables:
SPOTIFY_CLIENT_ID=your_spotify_client_id SPOTIFY_CLIENT_SECRET=your_spotify_client_secret NEXTAUTH_URL=https://your-domain.com NEXTAUTH_SECRET=generate_a_random_string DATABASE_URL=your_supabase_connection_string - Deploy!
After the first deployment, you need to run the database migrations:
-
Install Vercel CLI:
npm i -g vercel
-
Link your local project:
vercel link
-
Pull environment variables:
vercel env pull .env
-
Run the migration:
npx prisma db push
- Test the application by creating a room and joining as a guest
- Verify that Spotify authentication works
- Check that real-time updates are working
- Clone the repository
- Copy
.env.exampleto.envand fill in the values - Install dependencies:
npm install
- Run the development server:
npm run dev
SPOTIFY_CLIENT_ID: Your Spotify application client IDSPOTIFY_CLIENT_SECRET: Your Spotify application client secretNEXTAUTH_URL: Your application URL (http://localhost:3000 for development)NEXTAUTH_SECRET: A random string for session encryptionDATABASE_URL: Your Supabase PostgreSQL connection stringSENTRY_DSN(optional): Sentry error tracking DSN
- Next.js 15
- Prisma
- NextAuth.js
- Spotify Web API
- TailwindCSS
- Supabase (PostgreSQL Database)
- Vercel (Hosting)
MIT