Milestones: product roadmap by phase, status and linked tasks
The Milestones module shows every milestone in the organization grouped by product phase (Pre-MVP, MVP, PMF, Growth, Custom) rather than by goal. It shares its underlying data with the Goals module but has its own task linking.
- You're signed in and your organization has the "Milestones" module activated.
- 1
Read the roadmap by phase
The list groups every milestone into cards by phase — Pre-MVP, MVP, PMF, Growth, Custom — each with a progress bar (done/total) and a count badge. A phase with no milestones is hidden entirely, so there are no empty cards.
- 2
Create a milestone
"Add milestone" in the top right opens the dialog with title (required), description, phase, status (Upcoming, In progress, Completed, Delayed), target date and completed date. Unlike in the Goals module, the phase is freely selectable here — milestones created from within the Goals module, by contrast, always land fixed under "Custom".
- 3
Cycle status by clicking
The icon to the left of a milestone cycles on click through Upcoming → In progress → Completed → Delayed and back to Upcoming. Switching to Completed automatically sets today's date as the completed date.
- 4
Link tasks — its own field, independent of Goals
The "X/Y tasks" link under a milestone expands the linked tasks; "Add task" shows every open task not yet linked to another milestone. This link runs through its own field (milestoneId) — independent of the goalId field that drives goal linking in the Goals module. A task can therefore be linked to a goal AND a milestone at the same time.
- 5
Deep link from chat
A link with ?openMilestone=<id> in the URL (e.g. from an @-mention in chat) automatically opens that milestone's edit dialog once the page has loaded.
Milestones created via the Goals module always land under "Custom"
Creating a checkpoint directly on a goal fixes its phase to "Custom"; it can only be changed afterwards here in the Milestones module — the Goals module itself has no phase field.
Task linking is separate from goal linking
A task already linked to a milestone no longer appears in another milestone's task picker — but it still appears in the separate linking picker in the Goals module, since the two fields are independent.
Empty phases aren't shown
As long as a phase (e.g. "Growth") has zero milestones, it doesn't appear in the list at all — not even as an empty 0/0 card.
More articles are coming soon.
