A real-time collaborative platform for managing music jam sessions. Built with Next.js 15, MongoDB, and Pusher for real-time updates.
- Create and manage jam sessions with dates and song lists
- Add songs with details like title, artist, and type (banger/ballad)
- Real-time voting system for songs
- Track played/unplayed songs during sessions
- Group songs by type (bangers/ballads)
- Sort songs by votes or manually
- Real-time updates across all connected clients
- Chord chart support for songs
- Song history tracking
- Frontend: Next.js 15 (App Router), React 19, TailwindCSS
- Backend: Next.js API Routes
- Database: MongoDB with Mongoose
- Real-time: Pusher
- UI Components:
- Headless UI
- Heroicons
- ShadcnUI
-
Clone the repository
-
Install dependencies:
yarn install
-
Set up environment variables:
MONGODB_URI=your_mongodb_connection_string PUSHER_APP_ID=your_pusher_app_id PUSHER_KEY=your_pusher_key PUSHER_SECRET=your_pusher_secret PUSHER_CLUSTER=your_pusher_cluster
-
Run the development server:
yarn dev
-
Open http://localhost:3000 in your browser
/app
- Next.js 15 app router pages and API routes/components
- React components/lib
- Utility functions and configurations/models
- Mongoose models for MongoDB/styles
- Global styles and Tailwind configuration
- Create jam sessions with names and dates
- View list of all jam sessions
- Real-time updates when songs are added/removed/modified
- Add existing songs or create new ones
- Categorize songs as bangers or ballads
- Add chord charts and tags
- Track play history and vote counts
- Vote on songs in real-time
- Mark songs as played/unplayed
- See updates instantly across all connected clients
- Sort and group songs dynamically
GPL-3.0