Kevin Jahns
Workshop
Outline
3. Futuristic Note Taking App
1. Yjs
2. Y/stream
Yjs
What is Yjs?
- A CRDT document (Y.Map, Y.Text, Y.Array, Y.Xml*)
- In-memory
- Network Agnostic
- Huge ecosystem

Collaborative Application State
Yjs as source of truth
- Store application state in Yjs
ymap.set('key', 'value') - Observe changes
ymap.observe(event => ..)

Double Bindings
- Sync application state with Yjs
- e.g. codemirror <=> Y.Text
Yjs "Backends"
No specific backend
- By choice
- Integrates well into existing infrastructure
- Many open-source providers
Cloud Providers

Y/stream (experimental)
- A CRDT for syncing many CRDTs
- Stores documents in a database (isodb)
- Syncs 100th of thousands documents efficiently
- Doesn't have a specific backend provider
Features
- Network agnostic
- Works everywhere
- Small footprint
- Auth* integrated (experimental)

github.com/yjs/ystream

twitter.com/kevin_jahns
Local-first conf
By Kevin Jahns
Local-first conf
- 130