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)

twitter.com/kevin_jahns

Made with Slides.com