Summary
Broadcast work-item change events over the existing live (collaboration) server, so that every open board / list / calendar view soft-refreshes automatically when another user (or an API client) creates, updates, drags, archives or deletes a work item — no manual browser refresh needed.
Why should this be worked on?
Plane is built for agile teamwork, but today every work-item view is fetch-on-mount: the kanban/list store fetches once when the page mounts and never revalidates. Concretely:
- User A drags a card to Done; user B's screen keeps showing it under Todo until B manually reloads the page.
- Changes made through the public v1 API (CI bots, integrations) are invisible to everyone watching the board.
- Stale groupings silently mislead stand-ups and triage sessions.
The infrastructure for real-time already ships with CE: apps/live (Hocuspocus + Redis broadcast) powers collaborative page editing. Extending the same channel pattern to work-item events gives instant, multi-instance-safe sync without introducing a second realtime stack:
- The API emits a lightweight event (project / work item / change type / actor — no work-item data in the payload) after each change, from the single choke point that already records issue activity.
- The live server relays it to a per-project broadcast channel (
issue-events:<project_id>) over the existing Redis extension.
- Web clients subscribed to that channel ignore their own events, debounce bursts, and soft-refetch the current view with its existing pagination (no loader flash, scroll position kept).
Clients that don't configure the feature see zero change: the whole path is disabled unless an internal shared key is set on both the API and the live server.
Working implementation
A complete, self-contained implementation is attached as a PR: it covers drag & drop re-ordering/state changes, detail edits, creation, bulk delete, archiving, cycle/module membership changes and API-token-driven updates, and has been running on a self-hosted CE deployment.
Summary
Broadcast work-item change events over the existing live (collaboration) server, so that every open board / list / calendar view soft-refreshes automatically when another user (or an API client) creates, updates, drags, archives or deletes a work item — no manual browser refresh needed.
Why should this be worked on?
Plane is built for agile teamwork, but today every work-item view is fetch-on-mount: the kanban/list store fetches once when the page mounts and never revalidates. Concretely:
The infrastructure for real-time already ships with CE:
apps/live(Hocuspocus + Redis broadcast) powers collaborative page editing. Extending the same channel pattern to work-item events gives instant, multi-instance-safe sync without introducing a second realtime stack:issue-events:<project_id>) over the existing Redis extension.Clients that don't configure the feature see zero change: the whole path is disabled unless an internal shared key is set on both the API and the live server.
Working implementation
A complete, self-contained implementation is attached as a PR: it covers drag & drop re-ordering/state changes, detail edits, creation, bulk delete, archiving, cycle/module membership changes and API-token-driven updates, and has been running on a self-hosted CE deployment.