3
Beatsync is a high-precision web audio player built for multi-device playback.
beatsync-demo.mov
- Millisecond-accurate synchronization: Abstracts NTP-inspired time synchronization primitives to achieve a high degree of accuracy
- Cross-platform: Works on any device with a modern browser (Chrome recommended for best performance)
- Spatial audio: Allows controlling device volumes through a virtual listening source for interesting sonic effects
- Polished interface: Smooth loading states, status indicators, and all UI elements come built-in
- Self-hostable: Run your own instance with a few commands
Warning
Beatsync is in early development. Currently, only desktop Chrome browsers are fully supported.
Mobile device synchronization is experimental and may be unstable.
This project uses Turborepo.
Fill in the .env
file in apps/client
with the following:
NEXT_PUBLIC_API_URL=http://localhost:8080
NEXT_PUBLIC_WS_URL=ws://localhost:8080/ws
Run the following commands to start the server and client:
bun install # installs once for all workspaces
bun dev # starts both client (:3000) and server (:8080)
Directory | Purpose |
---|---|
apps/server |
Bun HTTP + WebSocket server |
apps/client |
Next.js frontend with Tailwind & Shadcn/ui |
packages/shared |
Type-safe schemas and functions shared between client & server |