Syncwaves is a real-time web audio player designed to turn multiple devices into synchronized speakers. This project was developed as part of my B.Tech Project to demonstrate advanced real-time WebSockets and audio synchronization.
- Millisecond-accurate synchronization: Uses a custom time synchronization protocol to achieve high accuracy across different devices.
- Cross-platform: Works on any device with a modern browser.
- Real-time collaboration: Multiple users can join a room and listen to the same audio stream simultaneously.
- Frontend: Next.js, React, TailwindCSS
- Backend: Bun, Hono, WebSockets
- State Management: Zustand
- Monorepo: Turborepo
-
Install dependencies:
bun install
-
Setup Environment Variables: Create an
.envfile inapps/clientwith the following:NEXT_PUBLIC_API_URL=http://localhost:8080 NEXT_PUBLIC_WS_URL=ws://localhost:8080/ws
-
Start the development server (runs both frontend and backend):
bun run dev
-
Open your browser and navigate to
http://localhost:3000.
| Directory | Purpose |
|---|---|
apps/server |
Backend HTTP + WebSocket server |
apps/client |
Next.js frontend |
packages/shared |
Type-safe schemas and functions shared between client & server |
Submitted as a B.Tech Project.