β¨ A real-time music platform where users can create clubs, add songs, and vote to decide what plays next β built using Next.js + WebSockets + Prisma + Clerk.
1BeatClub lets anyone create a collaborative βmusic clubβ where users join, add music, vote songs, and enjoy a shared playlistβcompletely live.
Perfect for:
- π₯ Parties
- ποΈ Gyms
- π¨βπ» Office working sessions
- π Events
- π Birthday gatherings
Bring your group together with music everyone chooses β€οΈ
- π΅ Create music clubs
- π§ Add songs from YouTube
- π Vote what plays next
- π Live real-time playback updates
- π Join via QR Code or invite link
- β‘ Optimistic updates (instant button feedback)
- π± Fully responsive (mobile-first)
- π¨ Modern UI
- β‘ Next.js 15 β App router, fast builds with Turbopack
- βοΈ React 19 β Latest React features
- π¨ Tailwind CSS 4 β Utility-first styling
- βοΈ Websocket β Enabling Realtime updates
- β¨ Lucide / Tabler Icons β Beautiful icon sets
- π Motion β Smooth animations
git clone https://github.com/LokeshXs/1BeatClub.git
cd 1beatclubnpm installcp .env.example .envDATABASE_URL=<your-postgres-url>
CLERK_SECRET_KEY=<your-clerk-secret-key>
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=<your-clerk-public-key>
GOOGLE_API_KEY=<your-google-api-key>npx prisma migrate dev- Clone and run the WebSocket server from the repository below π
π https://github.com/LokeshXs/1beatclub-ws-server.git
-
Follow the instructions in that repository to start the WebSocket server locally.
-
After starting it, come back to this project and update the WebSocket endpoint inside:
// /lib/config.ts
export const WEBSOCKET_SERVER_URL = "ws://localhost:8080";npm run dev
After the server starts successfully, open your browser and visit:
http://localhost:3000If everything is setup correctly, you should now see the 1BeatClub app running locally π
β¨ Why I built this
Because music brings people together β and every gathering deserves a shared playlist based on what everyone loves, not just the DJ π
Lokesh Singh
π Portfolio β https://lokesh-singh.vercel.app/





