← All tools

Roadmap as code

A roadmap is a text file wearing a diagram. Write yours as plain text on the left; get a clean, deck-ready now/next/later graphic on the right. Change the text, the picture follows β€” no more nudging boxes in slides.

View

Start typing β€” or load an example.

Export

Full-detail artefact

History

Why text?

Roadmaps decay because updating them is friction: the truth changes in minutes, but the diagram lives in a slide nobody wants to reflow. Making the source plain text removes the friction β€” an update is one line, the layout is the tool's problem, and the diagram is always regenerable. Text also diffs: paste versions into git or a doc and you can see exactly what moved between planning cycles, which slides will never tell you.

The default now/next/later form (over date-based Gantt) is deliberate: dates on a roadmap read as commitments and get negotiated; horizons communicate sequence and intent while staying honest about uncertainty β€” which is also why later columns fade slightly. See Janna Bastow on inventing now/next/later, and her case against timeline roadmaps. If your organisation plans in calendar time anyway, generate month or quarter columns (horizons: quarterly from Q3 2026 x4) β€” the certainty fade applies just the same.

The snapshot/compare feature exists because the most useful roadmap artefact isn't the roadmap β€” it's what changed since last time. Snapshot before each planning cycle; the comparison renders new, moved, and dropped items as an exportable slide.

Exports leave at 16:9, because a roadmap's destination is almost always a deck: pick a structure with style: (columns, a hero for the current horizon, a formal register, or the chart itself), and colour still comes from palette:/accent: β€” a style owns structure, never colour. The headline under the title is the one thing the tool won't write for you. It could: the model knows which horizon is overloaded and what's at risk. But a headline is a claim you're making to a room, and a tool that drafts it for you has put words in your mouth β€” so headline: stays blank until you write it, and the deck simply omits it if you don't. The tool still tells you when Now is overloaded; it just says it in the editor, where an argument belongs, rather than on your slide.

The style picker does more than choose an export now: Register, Board and Focus are live views you edit in place. Register renders as a spreadsheet β€” click a cell to change a title, note, status or lane, and drag a row to move its item to another horizon. Board renders as columns of cards β€” edit a card in place, tap its lane tag, or drag it to another column. Focus is a movable lens: one horizon fills the page as big editable cards while the rest collapse to a ranked rail β€” click any rail horizon to make it the hero (it sticks, as focus:), and drag a card between the rail and the hero to change its horizon. Grid stays the chart, because Grid is the chart, deck-scaled. Pick a style to work in it; a plain roadmap still opens on the chart. On a phone these can't fit, so editing falls back to the card stack β€” Download still gives you whichever style you chose.

A span (x3) means an item runs for that many columns straight β€” full occupancy, not a landing-date guess. That distinction is deliberate: honest uncertainty about when something lands is what Timeline is for, with its own P50/P90 language; a span here says the opposite, that the work is committed and running for its whole length. Drag its edges to change how long it runs, or its middle to move it without changing the length. A span can also leave an item active in a column it was never written under, so the WIP guardrail now counts everything active in a column, not just what starts there β€” a crunch two quarters out, invisible before, now warns.

16:9 export

Roadmap slide set

Every horizon and item is included.