Appearance
Real-time collaboration
Sharing a project, setting permissions, and working with others on the same drawing simultaneously.
Last verified: 2026-07-14 Status: Current
ErgoPlanner uses a Conflict-free Replicated Data Type (CRDT) engine (Loro) over SignalR to let multiple people edit the same drawing at the same time without overwriting each other's work. You do not need to check drawings in or out — just open one and start editing.
Sharing a project
Project membership is managed at the project level. Any member with owner or editor role can invite others.
- Open the project's Settings (from the Projects page, click the project then open its settings tab).
- Go to Team members.
- Click Add member and enter the person's email address.
- Choose their role (see below) and confirm.
The invited person receives an email with a link to accept and join. They must already have an ErgoPlanner account on your organisation's tenant; invites across tenants are not supported.
Permission levels
| Role | What they can do |
|---|---|
| owner | Full control — edit, delete, manage members, archive the project. |
| editor | Create and edit drawings, templates, and simulations within the project. |
| viewer | Read-only access. Can open drawings and export, but cannot save changes. |
Roles are set per-project. A person can be an editor on one project and a viewer on another.
Working on a drawing together
When you open a drawing that someone else has open at the same time:
- Presence indicator — the canvas toolbar shows a chip for each other collaborator currently viewing the drawing.
- Collaborators' cursors — each collaborator's pointer appears on your canvas as an arrow in their colour, with their display name on a label next to it. It follows their pointer in real time (updates are sent up to 20 times a second and drawn once per screen frame), and it stays in the right place on the drawing when you pan or zoom. A collaborator's colour is the same on their chip and their cursor. The cursor disappears when they leave the drawing or the connection drops.
- Collaborators' selections — whatever a collaborator has selected is outlined on your canvas with a dashed box in their colour, around each selected element. The outline follows the element if it is moved and clears when they deselect. Their selection never changes yours: you can select and edit the same element.
- A collaborator's cursor is only sent to you while it is near the part of the drawing you are looking at, so after you pan to a collaborator's area their cursor appears with their next pointer move.
- Live edits — when a collaborator places a symbol, draws a connection, or deletes an element, you see the change appear on your canvas within a second. You do not need to refresh.
- No locking — there is no element lock. Two people can move the same symbol simultaneously; the CRDT merges the two positions deterministically (last write wins on element position, no edit is lost).
- Sync indicator — the save-status pill in the canvas header shows
Synced,Syncing, orOffline. A number badge shows how many collaborators are active.
Editing a P&ID model together
The P&ID model editor (Admin → P&ID Models → Open editor) is shared the same way. With the same model open in two places:
- Everything you change reaches the others — placing, moving, resizing or deleting a symbol, editing its properties, drawing or restyling a connection, adding an area with Add View, and renaming an area. Your collaborators see the change on their canvas within about a second, without refreshing.
- New areas appear in their footer too. When a collaborator adds or renames an area, your view footer and Areas list pick it up a moment after the frame appears on the canvas.
- You see what the others have selected. Click a symbol on the canvas to select it (Shift, Ctrl or Cmd adds or removes it from the selection; a click on empty canvas clears it). Your collaborators see it outlined in your colour, with your name, until you select something else or clear the selection; the outline marks the symbol as locked by you while you work on it. An area frame is outlined but never locked.
- A collaborator's locked symbol is read-only for you. Their outline is drawn solid with a lock badge; you can select the symbol to read its properties, but dragging, resizing, rotating, flipping, deleting or cutting it (Delete or Backspace, the symbol toolbar and the right-click menu) is refused with a notice naming who holds it, and the Properties panel shows Locked by name and cannot be edited until they select something else or leave; a lock the holder stops renewing expires after 30 seconds, so a stalled collaborator never freezes a symbol. (This applies to the model editor; the Draw page has no element lock.)
- Undo and redo are shared edits. Undoing your own change sends the undo to everyone, like any other edit.
- Your edits are saved automatically. About 3 seconds after your last change the editor saves the model on its own and the Unsaved changes status clears; each further change restarts that wait, so a long drag or a run of edits is saved once you pause. Save (Ctrl+S) still saves at once. Opening a model is never saved by itself — only a change is.
- Saving is still per person. A collaborator's edit marks your copy as having unsaved changes, and your editor autosaves it like your own; whoever saves writes the same, shared model. If a collaborator's edit could not be delivered, the editor tells you and catches up from the saved model once they save.
- Going offline is noticed at once. When your browser loses its network connection the editor stops sending immediately and holds your edits (see below) rather than sending them into a dropped connection.
Template mode is not shared: edits made while authoring a template stay in your session.
How simultaneous edits are merged
The drawing state lives in a Loro CRDT document that is shared across all connected clients. Each local edit is applied immediately to your local copy (so there is no lag when you type or drag) and then broadcast to peers via SignalR.
When two people edit different parts of the drawing at the same time, the changes are merged automatically — each edit is independent and both are preserved. When two people edit the same property at the same time (for example, both move the same symbol), the CRDT applies both operations and the final position reflects the one that arrived last at the server. No work is silently discarded; you may need to re-apply a move if you see your change was overridden.
You do not need to understand the merge rules in normal use — the practical outcome is that concurrent edits compose rather than conflict.
Offline editing and reconnection
If you lose network connectivity while editing:
- The sync indicator turns amber and shows Offline.
- Your edits continue to apply locally and are queued in browser storage (IndexedDB).
- When the connection is restored, the queued operations are automatically sent to the server and merged with any changes that other collaborators made while you were offline.
- The indicator returns to Synced once the merge is complete.
P&ID model editor. The model editor keeps its own list of the changes you make while disconnected (in memory and in this browser, per model, so a reload does not lose them). A small Offline — N changes pending notice shows over the canvas while they wait, counting every edit you make on the canvas. When the connection returns they are sent to collaborators in the order you made them, your canvas is merged with the saved model (anything a collaborator saved while you were away is added, and your own unsaved edits are kept), and the notice clears. They are then written to the model by the autosave (or straight away if you press Save).
You do not need to take any action on reconnection. If the merge results in a state you did not expect, use File → Version history... to browse earlier saved snapshots and restore one if needed.
Version history
Each manual save (Ctrl+S) and autosave creates a snapshot. Open File → Version history... from the drawing menu to browse snapshots, preview them, and restore any earlier version. Restoring replaces the current drawing state and is immediately visible to all collaborators.