Editing Together

Once a board is shared, working on it feels like working on any other board — with the other people visible on the canvas and every change flowing both ways within a moment.

Live presence on a shared board

Seeing each other

  • Cursors. Every other person’s pointer moves across your canvas with a name tag, in a colour that stays theirs for the session. A cursor that stops moving fades after a few seconds.
  • Selections. Whatever someone has selected gets an outline in their colour with their name on it. Your own selection keeps the app’s green, so you always know which is yours.
  • “…is editing” chips. Selecting a single card announces that you’re working in it: the others see a Name is editing chip on that card. It is a heads-up, not a lock — nothing stops two people from editing the same card, but the chip makes it easy not to. If you select a card someone is already in, a short … is already editing that card notice appears.
  • Who’s online. The top bar shows an avatar for each person currently on the board next to the Collaborate button; the button’s dot is green while you’re connected and amber while reconnecting. The Collaboration panel lists everyone with their role and online/offline state.

How changes travel

Every edit you make is saved to your local board first, then queued for the room and sent immediately. Edits from others arrive over the same connection and appear on your canvas within a couple of seconds. There’s no “save” or “sync” button.

Edits made by an AI agent on your machine — GLAI, the terminal agent, the API — sync exactly like your own.

Media

Images, videos and files you add to a shared board upload to the owner’s Cloudflare storage in the background. While that’s happening the panel’s connection strip shows N queued; the card is already visible to you, and appears for everyone else as soon as the upload lands. Each collaborator’s app downloads shared media once and caches it locally — nobody’s computer is ever reached by anyone else.

  • Files are stored once per unique file, no matter how many cards use them.
  • 50 MB per file is the limit. A larger file shows up in the panel as a failed sync with Retry / Discard — see Resolving Conflicts.
  • Media removed from the board is swept from cloud storage automatically after a safety window.

Working offline and reconnecting

Losing the connection — or quitting the app — never interrupts your work. The board keeps behaving like a local board, your edits queue up (the strip shows how many), and when the room is reachable again:

  • your queued edits are sent in order;
  • everything that happened while you were away is replayed onto your copy, including cards others deleted;
  • a N changes synced while you were away notice tells you it happened.

If one of your queued edits collides with something a teammate changed in the meantime, it becomes a conflict entry instead of quietly winning or losing — Resolving Conflicts explains the choices.

Viewers

Someone who joined with a Can view invite sees the board, the cursors and all live changes, but every edit is refused on the spot with an explanation, and an amber You’re viewing this shared board — edits won’t be saved banner sits at the bottom of the canvas. Viewers’ cursors and selections are visible to editors just like anyone else’s.

What stays local

A few things deliberately don’t travel through the room:

  • Video Editor projects and Mockup projects made on a shared board. They stay on the machine that created them; the cards you build from them sync as normal.
  • Undo history. Undo is local. Undoing something a teammate has since changed lands in the conflict tray rather than silently reverting their work.
  • Presence identity is per machine. Two windows of the app on one computer count as one person.

Operations that need a local copy

A shared board refuses a handful of whole-board operations, because they would silently overwrite everyone’s copy: importing a board archive into it, wiping it, deleting it, and moving cards or arrows between it and another board. Each refusal says the same thing — detach it as a local copy first. Detaching takes a moment and the board keeps working locally.

Likewise, the board folder’s manifest (board.json) is export-only while the board is shared: the app keeps writing it so your folder stays portable, but hand edits or folder-sync changes to it are not pulled into the room.

Where to go next

Was this helpful?

0

Updated

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *