Local-First in Production: How We Built Plane's Collaborative Wiki with Yjs
- Track: Local-First, sync engines, CRDTs
- Room: K.3.201
- Day: Sunday
- Start: 10:00
- End: 10:30
- Video only: k3201
- Chat: Join the conversation!
Plane is an open source project management tool used by thousands of teams. A year ago, we shipped Wiki — a collaborative documentation system built on Yjs with real-time editing, offline support, and version history.
Yjs is remarkable. Kevin Jahns and the community have built something incredible — real-time sync, conflict resolution, offline editing, all handled elegantly. But integrating a powerful library is just the start. This talk is about what comes after.
I'll cover the production challenges we solved building on top of Yjs, the crux of it would be around:
- Server-side edits — making backend mutations (AI, automations, database state sync in case of subdocuments) coexist with live client editing without users feeling out of sync
- Scaling the sync layer — infrastructure decisions for thousands of concurrent documents with awareness working as expected.
- Large document performance — what breaks when documents get massive, and how we fixed it without breaking our servers, horizontally scaling sticky ws connections.
- Version history — snapshots and visual diffs using StateVectors and the StructStore (deep-dive: palanikannan.com/blogs/version-history-and-snapshots-in-yjs) and what works at scale!
- Offline-first in practice — making "syncs when you're back" actually reliable, especially say when you open your tab that chrome killed due to inactivity :p
- Permissions and reacting to them in realtime, inline comments sync and so much more!
Plane is fully open source with 38k+ stars and a vibrant OSS community. Real problems, real code, no theory slides.
Speakers
| M Palanikannan |