Collaboration

Version Downloads

The Collaboration extension enables you to collaborate with others in a single document. The implementation is based on Y.js by Kevin Jahns, which is the coolest thing to integrate collaborative editing in your project.

The history works totally different in a collaborative editing setup. If you undo a change, you don’t want to undo changes of other users. To handle that behaviour this extension provides an own undo and redo command. Don’t load the default History extension together with the Collaboration extension to avoid conflicts.

Installation

npm install @tiptap/extension-collaboration yjs y-websocket y-prosemirror

Settings

document

An initialized Y.js document.

Default: null

Collaboration.configure({
  document: new Y.Doc(),
})

field

Name of a Y.js fragment, can be changed to sync multiple fields with one Y.js document.

Default: 'default'

Collaboration.configure({
  document: new Y.Doc(),
  field: 'title',
})

fragment

A raw Y.js fragment, can be used instead of document and field.

Default: null

Collaboration.configure({
  fragment: new Y.Doc().getXmlFragment('body'),
})

Commands

The Collaboration extension comes with its own history extension. Make sure to disable the default extension, if you’re working with the StarterKit.

undo()

Undo the last change.

editor.commands.undo()

redo()

Redo the last change.

editor.commands.redo()

Keyboard shortcuts

Command Windows/Linux macOS
undo() Control Z Cmd Z
redo() Shift Control Z
Control Y
Shift Cmd Z
Cmd Y

Source code

packages/extension-collaboration/

Usage

Public

The content of this editor is shared with other users.

Collaboration

Fasten your seatbelts! Your hosted solution for collaborative editing is ready for you.

Sign up Tiptap Pro
Supercharge your app with collaborative editing:
  • Real-time everything
  • Conflict-free & Offline-first
  • Managed and hosted by us