https://synchronous-xt28.vercel.app/
Synchronous is a real-time collaborative music listening application built with the MERN stack (MongoDB, Express, React, Node.js). It allows multiple users to join a virtual room and listen to music simultaneously, with perfect synchronization across all devices.
- All users hear the music at exactly the same time
- Automatic drift correction maintains perfect sync
- Adaptive latency compensation for different network conditions
- Create unique music rooms with custom names
- Join existing rooms with a simple ID
- See all participants in real-time
- First user becomes room admin
- Search and select songs from YouTube's vast library
- Play, pause, and seek through tracks
- Control playback for all participants
- Fully responsive design works on all devices
- Touch-friendly controls for mobile users
- Mobile-specific audio optimizations
- Efficient WebSocket communication
- Adaptive quality based on network conditions
- Minimal resource consumption
- React (v18)
- React Router (v6)
- Socket.IO Client
- React Player
- Axios
- Tailwind CSS
- Node.js (v18+)
- Express.js
- Socket.IO
- Axios (for YouTube API)
- Cors
- Node.js (v18 or higher)
- npm (v8 or higher)
- YouTube API Key (free tier)
git clone https://github.com/your-username/synchronous-music-app.git
cd synchronous-music-appcd backend
npm installcd ../client
npm installCreate a .env file in the backend directory:
YOUTUBE_API_KEY=your_youtube_api_key
PORT=5000Start backend:
cd backend
node server.jsStart frontend in a new terminal:
cd client
npm start- Go to the homepage
- Click "Create a Room"
- Optionally enter a room name
- You'll be redirected to your new room as the admin
- Get the room ID from a friend
- Enter it in the "Join a Room" field
- Click "Join Room"
- Search for songs: Use the search bar to find YouTube videos
- Play/Pause: Control playback for everyone
- Seek: Drag the progress bar to skip to any part of the song
- Volume: Adjust volume using the slider
- Listen to music in perfect sync with others
- See what song is currently playing
- View other participants in the room
Problem: Songs don't play in sync
Solution: Check your network connection. The app automatically corrects drift over time.
Problem: Can't find songs in search
Solution: Ensure you have a valid YouTube API key in your .env file
Problem: Mobile playback issues
Solution: Make sure "Auto-Play" is enabled in your mobile browser settings