← Selected work

Collaborative document editor

In development · Since April 2026

CoCanvas

A document, shared as it changes.

CoCanvas is a document editor where several people can write at the same time. I’m building it with Yjs, Node.js and WebSocket to support concurrent changes and synchronisation when a client reconnects.

At its core is a CRDT: a data structure designed to merge concurrent changes. Alongside the document itself, the editor handles the presence information that helps people see who else is there.

CoCanvasShared editing
Editor ALocal changes
Yjs / CRDTShared
document
Editor BLocal changes
Concept diagram · concurrent changes and synchronisation

The core pieces

Editing together

Yjs and a WebSocket connection support concurrent editing. Multiplayer cursors, selections and online status make the shared session visible.

Finding the document again

Snapshots and incremental updates are used to restore a document. Reconnection handling lets a returning client synchronise its state.

The other projectPaperScope

Get in touch

Let’s talk.

I’m looking for software engineering, AI application and data internships or graduate roles in Ireland. Questions about my projects are welcome, too.