About this project

Beatsync is a high-precision web audio player built for multi-device playback and spatial audio. The official application is hosted at beatsync.gg. ### Key Features - **Millisecond-Accurate Synchronization**: Leverages NTP-inspired time synchronization primitives to achieve highly precise multi-device audio alignment. - **Cross-Platform**: Runs on any device with a modern browser (Chrome recommended for best performance). - **Spatial Audio**: Enables volume control of devices through a virtual listening source for unique sonic effects. - **Polished UI**: Includes smooth loading states, status indicators, and a built-in interface. - **Self-Hostable**: Easily run your own instance using a few simple commands. ### Architecture The project is organized as a Turborepo monorepo with the following workspaces: - `apps/server`: Bun HTTP + WebSocket server. - `apps/client`: Next.js frontend utilizing Tailwind and Shadcn/ui. - `packages/shared`: Type-safe schemas and shared functions between the client and server. ### Quickstart To run the project locally: 1. Configure environment variables in `apps/client/.env` (`NEXT_PUBLIC_API_URL` and `NEXT_PUBLIC_WS_URL`). 2. Install dependencies and start the development servers using Bun: - `bun install` - `bun dev` (starts client on :3000 and server on :8080) Note: The project is in early development, and mobile support is currently experimental.