Skip to content

Collaboration

Orimora supports real-time collaborative editing — multiple people can edit the same document simultaneously, see who is online, leave comments, and browse revision history.

Collaboration uses Yjs over a WebSocket connection to path /collab on the same origin as the app (e.g. wss://orimora.com/collab).

  • Changes sync in near real time between all open editors
  • Each user’s cursor and selection appear with a color-coded label
  • The document persists to PostgreSQL when editing pauses or on disconnect

When others are editing the same document, avatar chips appear in the document meta bar showing who is active. Hover for names; a “+N more” indicator appears when many users are present.

You do not need to configure anything for presence — it activates automatically when a document has a collaborative session.

  1. Select text in the editor
  2. Click Add comment in the bubble menu
  3. The Comments panel opens — write your message and submit

Comments are anchored to the selected text. Click a comment highlight in the document to jump to the thread in the panel.

Team members with the Delete Any Comment capability can remove others’ comments (see Permissions).

Open History from the document panels menu.

  • Revisions are saved automatically as you edit
  • Click any snapshot to compare with the current version
  • Restore rolls the document back to that snapshot (creates a new revision)
  • Delete individual snapshots if you have edit rights

Restoring does not affect other users’ unsaved collab state immediately — coordinate with your team before restoring on active documents.

VariablePurposeDefault
COLLAB_SECRETOptional shared secret for the collab endpointunset
COLLAB_MAX_CONNECTIONSMax simultaneous WebSocket connections50
COLLAB_MAX_YJS_STATE_BYTESMax document state size (anti-abuse)8 MB
EXTRA_ALLOWED_ORIGINSAdditional allowed origins if app is accessed via multiple domains

Set EXTRA_ALLOWED_ORIGINS when users reach the app through a staging domain or alternate hostname that shares the same backend.

SymptomWhat to check
Edits do not syncWebSocket blocked? Browser dev tools → Network → WS to /collab
”Disconnected” bannerNetwork drop — refresh; check reverse proxy WS timeout
Collab works on desktop but not mobileSame origin required; no mixed HTTP/HTTPS
Rate limits on login affect everyone behind proxySet ADDRESS_HEADER and XFF_DEPTH — see Coolify Setup