Shared editing sessions
Collaboration
Treat collaboration as a composable document service, not an editor-specific afterthought.
Explore source ↗Capability
Protocol, transport, server, editor, and UI modules for synchronizing document operations, presence, and collaborative editing workflows.
- 01
Operation-based synchronization
- 02
Presence and participant state
- 03
Transport-neutral sessions
- 04
Server and UI packages
How it composes
From intent
to working system.
Operation
Document changes are represented as explicit collaboration messages.
Session
Participants, presence, versions, and local state are coordinated.
Transport
Connections move protocol messages without owning editor logic.
Experience
Editor and UI packages surface remote changes and presence.
Quick start
Adopt this
capability.
Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.
dotnet add package ProEdit.Collaboration --prerelease<PackageReference Include="ProEdit.Collaboration" Version="VERSION" /><PackageVersion Include="ProEdit.Collaboration" Version="VERSION" />var session = await collaboration.ConnectAsync( documentId: "proposal-42", user: currentUser, cancellationToken);
editor.AttachCollaboration(session);Modules in this capability
Use one layer.
Compose the rest.
Collaboration model, operations, sessions, and synchronization.
↗02ProEdit.Collaboration.TransportsTransport implementations and connection contracts.
↗03ProEdit.Collaboration.ServerServer-side session coordination.
↗04ProEdit.Collaboration.UIPresence and collaboration UI components.
↗Source of truth
Read the module beside the complete system.
The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.