Kevin Jahns

Text collaboration

Collaborative Drawing

  • Whiteboarding
  • Diagrams editing
  • ..

Automatic Conflict Resolution

Insert(0, A)

Insert(0, B)

AB

0
 Advanced issue found
 

AB

0
 Advanced issue found
 

Manual Conflict Resolution

Insert(0, A)

Insert(0, B)

<user decides>

0
 Advanced issue found
 

<user decides>

0
 Advanced issue found
 

AB

BA

Existing solutions ..

  • .. are tailored to a specific editor
  • .. only work with a specific (proprietary) backend
  • .. don't work p2p

Yjs mission

  • Network agnostic
  • Support all editors
  • Enable collaboration in all applications
  • Solve all hard problems in collaborative editing
    • Shared Undo/Redo
    • Awareness
      • Who is online?
      • What are they doing?
      • Remote selections
    • Versioning
    • Change tracking (who created which content)
    • Offline editing
    • ...
0
 Advanced issue found
👍
1

Yjs is a small, high performant CRDT implementation exposing its internal data representation as shared types

Shared Types

  • Y.Map
  • Y.Array
  • Y.Text
  • Y.Xml

Yjs Ecosystem

  • y-webrtc
  • y-websocket
  • y-dat (WIP)
  • y-prosemirror
  • y-quill
  • y-codemirror
  • y-ace
  • y-monaco
  • y-gutenberg (WIP)

Editor Bindings

Connectors

Persistence

  • y-indexeddb
  • y-redis
  • y-leveldb

Demo Time!

  • y-prosemirror, y-quill
  • y-webrtc
  • y-indexeddb

Using the following technologies:

Offline, p2p, collaboration with versioning support!

Made with Slides.com