Sobmit Docs

Realtime collaboration

Multiple people can edit the same saved flow live. Changes, cursors and presence are broadcast over a WebSocket so everyone sees the same canvas.

What syncs in realtime

  • Project changes — nodes and edges added, moved or edited are broadcast and applied to every participant’s canvas.
  • Presence — who is viewing the flow, shown as avatars in the navbar.
  • Cursors — each participant’s live cursor is drawn on the canvas.
  • Run state — when someone starts or finishes a run, others see it.

How it works

The client opens a WebSocket to:

/api/realtime?flow=<shortId>

One room per flow. Signed-in users who can edit the flow get a read-write socket; anonymous visitors viewing a public flow are read-only (they fork to edit).

Auto-save

Edits are debounced and saved to the server, then broadcast to the room. The last-writer-wins model keeps everyone in sync without conflict dialogs.

Notes

  • Collaboration only applies to saved flows (flows with a short id).
  • Scratch (unsaved) canvases have no room.
  • A run repainting the canvas does not trigger a save/broadcast, so a run in progress never wipes another participant’s edits.

Related