The collaborative doc
your team won't fight over.

A real-time collaborative document editor with multi-cursor editing, powered by Yjs CRDTs, Tiptap, Next.js, and Convex. Open source on GitHub.

Two windows, one document.

Joe and Candice are typing into the same doc. Click either card to take over — the other side will see your cursor live.

JJoeauto-typing
CCandiceauto-typing
Click a card to take over typing·

Everything you need to write together.

A focused set of features that ship today. No marketing-page mirage.

Rich text editing

Headings, lists, tables, task lists, images, links, code, highlights — powered by Tiptap with sensible keyboard shortcuts.

Real-time multi-cursor editing

Yjs CRDTs over Y-socket.io. Concurrent edits converge automatically — no overwrites, no merge dialogs.

Persistent storage

Documents and Yjs state live in Convex. Reload anytime — your edits, formatting, and embeds are exactly where you left them.

Auth with Clerk

Sign in, sign up, sessions, profile — handled. Drop into the editor without rolling your own auth.

Organization-scoped collaboration

Docs created under an organization are shared with the whole org. Personal docs stay personal — no accidental leaks.

Document management

Create, rename, search, and delete documents from a single workspace. Edits and formatting persist across reloads.

How concurrent edits stay conflict-free.

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.

  1. 1You type a change in the Tiptap editor.
  2. 2It's converted into a Yjs update.
  3. 3The update is sent over a Y-socket.io WebSocket.
  4. 4The server relays it to every connected client.
  5. 5Each client merges the update — CRDT math guarantees convergence.
Architecture
Client A
Tiptap · Yjs
Client B
Tiptap · Yjs
Client C
Tiptap · Yjs
WebSocket · Yjs updates
Y-socket.io server
sync · broadcast
persistence
Convex
database · serverless fns

A real-time editor, built in the open.

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.

License
MIT
Language
TypeScript
Frontend
Next.js · React · Tailwind · shadcn/ui
Backend
Convex · Y-socket.io · Clerk
Hosting
Vercel (frontend) · Convex (backend) · Render (Y-socket.io)

Questions, answered.

Try it. Read the code.
That's the offer.

Open the demo in two tabs and watch the cursors. Or pull the repo and see how it's wired together.