collab-rte — edit together in the RTE, without merge conflicts.

collab-rte extends the TYPO3 RTE with collaborative editing: multiple editors in the same document, CRDT-based sync, cursor display and conflict-free merging. Coming soon — content and API documentation will follow once the package is cleared for public release.

Availability: coming soon — public release in preparation

The public release as a Composer package is currently in preparation. If you would like to use collab-rte in your TYPO3 platform already, get in touch via the contact form — we currently ship it as part of platform engagements.

What it does

collab-rte registers itself as a CKEditor 5 plugin in every backend RTE that uses the typo3-rte-ckeditor-ckeditor5 web component. The plugin reads the collab configuration from the CKEditor config object (token, docId, display name, colour), which collab-core::ProvideCollabTokenListener injects, initialises a Yjs doc plus Hocuspocus provider and synchronises HTML content bidirectionally between the Yjs text type and CKEditor.

Sync strategy

Sync runs on HTML level, not on the CKEditor model-operation level. Structural integrity is preserved, character-level merge precision is limited — an intentional trade-off in favour of Yjs/CKEditor decoupling.

DOM events

The plugin emits collab:connected, collab:disconnected and collab:auth-failed.

Components

FilePurpose
Resources/Private/TypeScript/CollabPlugin.tsMain plugin: Yjs↔CKEditor binding, Hocuspocus provider
Resources/Private/TypeScript/StatusBadge.tsLive status indicator (connected, disconnected, auth-failed)
Resources/Public/Css/status-badge.cssStyling for the connection-status badge
Configuration/JavaScriptModules.phpTYPO3-14 JS module registration
Configuration/RTE/Collab.yamlRTE preset that activates the collab plugin in the CKEditor configuration

Assigning the RTE preset

 

columns:
  bodytext:
    config:
      richtextConfiguration: collab

 

Requirements

Next step

Pilot collaborative RTE editing early?

If you want to test collab-rte early in a TYPO3 editorial setup or validate the CRDT sync API against your editor configuration, get in touch via the contact form.

Discuss RTE collaboration

Or email us directly: kontakt@moselwal.de