[feature]: Realtime work-item updates over the live server (auto-refresh boards/lists without manual reload)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 59.6k
- Forks
- 5.8k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 49
Description
- I have searched the existing issues
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the attached implementation and the existing apps/live Hocuspocus and Redis broadcast path. Trace the API change-event choke point and the subscribed board, list, and calendar clients. Done means supported work-item changes trigger debounced soft-refreshes across project views while preserving pagination and scroll position, with the shared-key feature gate disabled by default.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, redis, typescript
- Domain
- api, backend, distributed-systems, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100