Real-time Collaborative Editor
A real-time collaborative rich-text editor built with Yjs CRDTs, enabling multiple users to edit shared documents concurrently with low-latency sync, presence awareness, and offline-first persistence.

Project Overview
A real-time collaborative editor that lets multiple users simultaneously edit the same document with conflict-free merges, character-level awareness, and live cursors.
Built on Yjs, the editor leverages CRDT data structures so that concurrent edits converge deterministically without a central authority resolving conflicts.
How It Works
Document state is modeled as a Yjs shared type and synchronized across clients via a WebSocket provider, with per-user awareness state broadcasting cursors, selections, and identity.
Local edits are applied optimistically and merged using CRDT semantics, so the UI stays responsive even under poor network conditions or temporary disconnects.
IndexedDB persistence keeps documents available offline, and edits made while offline automatically reconcile on reconnect.
Key Features and Stack
Features include live multi-cursor collaboration, presence indicators, offline-first editing, deterministic conflict-free merges, and a clean rich-text interface.
The stack uses Next.js and React for the UI, TipTap as the editor layer, Yjs for the CRDT core, a WebSocket provider for transport, and IndexedDB for local persistence.