Lab Hub
← All projects

Realtime Collaboration Board

planned

Sticky notes, movements and cursors update live for everyone on the board.

Stack

  • Socket.io
  • Redis (Upstash)
  • React
  • TypeScript
board.artificialsi.tech (not live yet)GitHub repo

Architecture notes

Goal

Several people open one board and see notes and cursors update live.

Architecture

  • Node + Express + Socket.io, one room per board id.
  • Typed events: note:create, note:update, note:delete, board:state.
  • Presence and cursors are throttled on the client to about 20 updates per second.
  • Redis (Upstash) adapter so two server instances share one board.

Key decisions

  • Version number on every note: stale updates are rejected with a conflict event instead of silently overwriting.
  • Optimistic UI: the client applies edits instantly and rolls back on conflict.