Solo developer: product design, frontend, real-time backend, database, testing and deployment. · 2026
Braid Workspaces
A real-time workspace for docs, boards and whiteboards that works offline and lets you replay every edit, built and hosted for $0 a month.

Overview
Braid is a multiplayer workspace where a team writes docs, runs kanban boards and sketches on a shared canvas together, live. Everything syncs instantly, keeps working with no connection, and keeps its full history: you can rewind any page to watch how it changed, branch it to try an idea, and merge it back after a review. Huddles, live sessions, automations and a “what changed since you left” view are built in.
The problem
Collaboration tools are good at showing the current state of a document but bad at showing how it got there. When a teammate rewrites a plan, you see the result, not the reasoning. Trying an alternative means copying the page, and coming back after a day away means hunting for what changed. Most of these tools also stop working when the connection drops. I wanted a workspace where history comes first: every change can be replayed, branched and reviewed, and working offline is normal rather than an error state.
The approach
Each page is a Yjs CRDT document, so edits from any number of people merge without conflicts, including edits made offline. A Hocuspocus server relays changes over WebSockets and saves every update to Postgres. Because every update is stored, three features come almost for free: - Rewind: replays those updates step by step, showing who made each change. - Branches: fork a document’s state; the review screen shows a word-level diff before merging. - Catch-up: compares the page with what you saw on your last visit.
Other pieces: - Server automations: run on the sync server, so a rule like “Bug label → assign Ravi, due in 2 days” fires even for edits that sync later from offline. - Huddles: a WebRTC full mesh, with signaling relayed by the same sync server. - Follow mode: shares each person’s viewport through awareness state. - Canvas: an SVG whiteboard I built from scratch, with fractional indexes for layer order and per-user undo. - UI: hand-written shadcn/ui components with keyboard and screen-reader support throughout. Those accessible labels also gave the Playwright tests stable selectors.
The result
Braid is live with sign-up, invites, roles and an inbox. The Next.js app runs on Vercel, the sync server on Render and Postgres on Neon, all on free tiers. Each phase was finished only once its end-to-end suite passed, with two real browsers editing the same page at once. That caught issues a single-user test wouldn’t, such as a drag-and-drop update loop between two clients and deletions that never triggered a re-render. The most useful lesson was to treat history as the main data model rather than as an audit log; once I did that, rewind, branches, recaps and catch-up became views over the same stored updates.
Screenshots
Have a similar problem?
Get in touch