Live collaboration
Pick how edits merge, check every change on the server, keep presence short-lived, and test that local copies converge. Erase deleted data from history too.
- Required 2
- Recommended 5
Required
Check every incoming change against the sender's rights
APP-69The collaboration server checks the sender's right to edit on every message that writes, not only when the connection opens. It drops writes from viewers and from people whose access has ended.
Erase deleted personal data from document history
APP-74When personal data must be erased from a shared document, remove it from the stored history and snapshots as well as from the current text. Refuse later changes from copies made before the erasure.
Recommended
Choose how edits merge before you build co-editing
APP-68Write down one merge model for each kind of shared data. Use version checks for forms, changes ordered by the server for records with business rules, and a CRDT library for shared text and offline editing.
Show presence from short-lived state
APP-70Keep cursors, selections and who is here out of the stored document. Each client renews its presence at least every 15 seconds, and presence expires after 30 seconds without renewal.
Keep a local copy that syncs on reconnect
APP-71For documents people edit offline, keep a copy in the browser's IndexedDB, apply each edit to it first and send the missing changes on reconnect. Show whether the copy is in step with the server.
Test that copies end up equal in any order
APP-72Run a property test that makes random edits on three copies and delivers the changes in every order, twice over. All copies must end equal. Run at least 1,000 cases in CI.
Undo only your own changes in a shared document
APP-73In a shared document, undo reverses only the local person's changes, never a collaborator's.
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/app-ui/live-collaboration">Agent Wranglers web app interface playbook</a>. In code you write, add a comment next to it with the same link.