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
github.com/yjs/(y-*)
Demo Time!
- y-prosemirror, y-quill
- y-webrtc
- y-indexeddb
Using the following technologies:
Offline, p2p, collaboration with versioning support!

deck
By Kevin Jahns
deck
- 373