A real-time collaborative document editor with multi-cursor editing, powered by Yjs CRDTs, Tiptap, Next.js, and Convex. Open source on GitHub.
Joe and Candice are typing into the same doc. Click either card to take over — the other side will see your cursor live.
A focused set of features that ship today. No marketing-page mirage.
Headings, lists, tables, task lists, images, links, code, highlights — powered by Tiptap with sensible keyboard shortcuts.
Yjs CRDTs over Y-socket.io. Concurrent edits converge automatically — no overwrites, no merge dialogs.
Documents and Yjs state live in Convex. Reload anytime — your edits, formatting, and embeds are exactly where you left them.
Sign in, sign up, sessions, profile — handled. Drop into the editor without rolling your own auth.
Docs created under an organization are shared with the whole org. Personal docs stay personal — no accidental leaks.
Create, rename, search, and delete documents from a single workspace. Edits and formatting persist across reloads.
DokuPad uses Yjs — a CRDT (Conflict-free Replicated Data Type) — so two people can edit the same paragraph at the same time and the document always converges to the same state.
DokuPad is a full-stack portfolio project by Mohd Riaz — exploring how to build a real-time collaborative editor with modern web primitives.
The code is MIT-licensed and lives on GitHub. Clone it, run it locally, or just read through how Yjs, Tiptap, and Convex fit together.
Open the demo in two tabs and watch the cursors. Or pull the repo and see how it's wired together.