A musical jam application. Play instruments, watch the audio visualized live, and pull up a shared playlist.
The client is a Next.js (App Router) + Tailwind CSS app, using Tone.js for sound and p5.js for the audio visualizers.
In the client directory, you can run:
Runs the app in development mode at http://localhost:3000. The page hot-reloads as you edit.
Builds an optimized production build.
Serves the production build (run npm run build first).
Runs ESLint.
The client talks to the server over a socket.io connection, configured via NEXT_PUBLIC_SOCKET_URL in client/.env.local (defaults to ws://localhost:3001).
The server is the backend: an Express-free http server running socket.io, backed by a SQLite database (via better-sqlite3) for the song playlist.
In the server directory, you can run:
Runs the server in development mode (auto-restarts on file changes) at ws://localhost:3001.
You'll need both processes running at once, in two terminals:
cd server && npm install && npm start
cd client && npm install && npm run devThen open http://localhost:3000.