ClipSpacesClipSpaces Docs
Back to app

All releases

Live shared boards over WebRTC (replaces the item tray)

The same-network WebRTC feature now shares a live board, not a clipboard of items. When a signed-out peer accepts your invite, you co-edit your board together in real time until the session ends.

Added / Changed

  • Live board co-editing. The requester is the host — edits land on their real active board; the accepter is the guest — their canvas switches to a throwaway space mirroring the host's board, which is discarded on disconnect (the host keeps the board with all changes). Cards and connectors sync.
    • lib/use-local-peers.ts reworked from a tray to a board session: roles (host/guest), sendBoard() (debounced, guest-gated until the host's first snapshot so an empty view can't wipe the board), and remoteBoard to apply.
    • lib/webrtc.ts is now a generic chunked-JSON channel (replaces the item/file-binary protocol) so a board snapshot with inline image data URLs transfers transparently.
    • components/Canvas.tsx gained getBoard() / receiveEdges() and an onEdgesSync callback (local connector changes broadcast; remote-applied ones don't echo). app/page.tsx renders the guest's shared board in place of their own with a "Live in X's board" banner; components/LocalPeersDock.tsx shows the nearby/invite/incoming UI and a host "Sharing…" pill.
  • Superseded: the ephemeral item tray from the 2026-06-23 entry below (SharedTray, tray drag-to-canvas, the WebRTC file-chunk protocol) is replaced by live board sharing. Drag-and-drop of files/links/text onto the canvas is unchanged.

Known limitations

  • Full-snapshot last-writer-wins sync (fine for two ephemeral peers); a rare concurrent edit can be lost. Image/file cards travel inline as data URLs.