Skip to content

Workshop Mode

Workshop mode turns a project board into a live, shared planning canvas. Instead of one person dragging cards while everyone watches over a screen-share, the team starts a workshop session and edits the board together — adding phases, renaming them, and reordering work — with everyone’s presence shown in real time.

A project Admin starts a workshop from the board toolbar (the Start workshop session toggle). Only one workshop can be active per project at a time. While a session is active, the board shows:

  • A sticky banner with an elapsed-time counter and the avatars of everyone present.
  • Inline-editable phase names — click a phase header to rename it.
  • Drag-to-reorder phases so the team can restructure the plan together.
  • An + Add phase control, and a phase canvas in place of the usual empty state when the board has no phases yet.

Ending the session returns the board to its normal view. The session can be ended by the Admin who started it (or any project Admin); an exit confirmation guards against ending it by accident. If a facilitator’s client crashes mid-session, any Admin can force-end the orphaned session to unblock the board.

ActionRequired role
Start a workshopAdmin
Rename / reorder phases during a workshopAdmin
Add tasks during a workshopMember or above
End the workshopAdmin, or the user who started it
Force-end an orphaned sessionAdmin

When you have the board open during an active workshop, the client subscribes to a per-project workshop WebSocket channel. Joining and leaving update your presence in the banner, and each participant is assigned a stable color for their avatar. Reconnecting to the same session (for example after a brief network drop) rejoins you rather than creating a duplicate presence.

Workshop sessions are managed through the project API:

Method & pathPurposePermission
POST /api/v1/projects/{id}/workshop/start/Start a session (409 if one is already active)Admin
POST /api/v1/projects/{id}/workshop/end/End the active sessionAdmin or session owner
POST /api/v1/projects/{id}/workshop/force-end/Force-end an orphaned sessionAdmin
GET /api/v1/projects/{id}/workshop/current/Fetch the active session and its participantsMember

Session start and end broadcast workshop_started / workshop_ended events to all connected board clients, deferred to transaction commit so the board only reacts once the change is durable.