Collaboration server

Seance

Seance is an open source real-time collaboration server for browser-based creative tools. Clients share live edits, cursors, and state over one WebSocket.

  • Free
  • MIT license
  • WebSocket
  • Self-hostable

Overview

Seance runs the online sessions in the Noise Factor apps. Clients join a session over a WebSocket and see each other's edits, cursors, state changes, and moderation events as they happen. The server owns all session state.

Frequent parameter changes travel on a last-write-wins lane. Text and tree edits travel on a server-serialized document lane with acknowledgements, stale-edit recovery, and snapshots. A zero-dependency browser SDK connects Handfish-based DSL editors.

Features

Specifications

TypeServer with a browser SDK
Used byNoisedeck, Polymorphic, Visualize, Layers, and Noodles (Go Online)
ServerPython 3.14 or later, aiohttp; Docker image
StorageSQLite (WAL); optional Postgres or SQLite member directory
ProtocolWebSocket, one JSON object per text frame; HTTP API under /v1
LimitsFrames up to 64 KiB, snapshots up to 1 MiB, per-lane rate limits, 20-second heartbeat
Sourcegithub.com/noisefactorllc/seance
LicenseMIT
PriceFree

Get started

  1. Open a supported app, such as Noisedeck, and select Go Online to start a session.
  2. Share the session link with collaborators.
  3. To run your own server, clone the Seance repository and follow the operations guide.

Resources

Questions

Which apps use Seance?
Noisedeck, Polymorphic, Visualize, Layers, and Noodles use Seance for online sessions.
Can I run my own Seance server?
Yes. Seance is open source under the MIT license and runs as a Python service or Docker container.
How does Seance handle conflicting edits?
Parameter changes use last-write-wins. Document edits are serialized by the server, which acknowledges each edit and recovers clients that sent stale edits.