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
- Core concepts — what a flow is.
- Webhooks — triggering a flow.