Multiplayer

Shared whiteboards with a default SvelteKit backend. Or plug your own via the adapter interface.

Guide: From npx sv create to a working multiplayer whiteboard with file-system persistence. Copy-paste walkthrough.

Quick setup

  1. Enable Remote functions in svelte.config.js.
  2. Add a POST route that returns handleExcalidrawStream(request, { roomId, username, color }). Adapters
  3. Use createDefaultAdapter({ streamUrl: (roomId) => "/your-path/" + roomId }) on the client.

Persistence is on by default. Customize or pass persist: false for demos.

Flow