Gantt & critical path
Project schedules COMPUTED from durations, dependencies and a working calendar — never placed by hand. Forward and backward pass for the critical path, total and free float drawn as a whisker on every bar, all four precedence relationships (FS, SS, FF, SF) with lead and lag, calendar-day durations for waiting periods, resources and over-allocation, baselines and deadlines. Every date written in the document is treated as a claim and checked against the computation: a stated start that its own predecessors contradict, a missed deadline, one person booked on two overlapping tasks, and a dependency loop that has no schedule at all. `view network` draws the same schedule as an activity-on-node precedence network instead of bars — one document, two views, one computation, so they cannot disagree.

In the same space
Most users come to Gantt & critical path from Microsoft Project, Smartsheet, TeamGantt, GanttProject, Mermaid gantt or Primavera P6 (light plans). flowss runs this engine in the browser — no install, shareable via URL, exportable to PNG / SVG / PDF / source.
Syntax at a glance
title "Launch"
start 2026-03-02
calendar mon-fri
section "Build"
task spec "Specification" 8d
task api "Service API" 15d after spec
task ui "Web client" 12d after spec
task join "Integration" 6d after api, ui
milestone beta "Beta release" after joinPaste this in the Studio code pane to see Gantt & critical path render live. The full grammar is at the upstream-docs link above.
Sample templates
All 13 →The reference plan, reported clean. Four teams, a working calendar with two public holidays, a milestone, a board deadline and a today marker. Every bar is derived from the durations and dependencies — nothing here is placed by hand — and the trailing whisker on each bar is its total float, which is the number no other text-driven Gantt tool can show you.
Every precedence relationship in one plan, which Mermaid cannot express at all: finish-to-start, start-to-start, finish-to-finish and start-to-finish, each with a lag or a lead. `+10cd` is ten ELAPSED days — concrete does not stop curing on a Saturday — and the engine converts that to working days from wherever the predecessor actually lands. Reports clean.
Two chains of exactly equal length run in parallel, so BOTH are critical and every task on them has zero float. Take a week off one of them and the finish date does not move, because the other still holds it. This is the single most expensive misreading of a critical path, and no tool that draws bars without computing them can even show you that it applies.
The defect this engine was built to catch, and it is invisible in every tool that draws what it is told. `cut` states it must start on 15 September; its own predecessors do not release it until the 29th — ten working days later. Both sentences are in the same document, both look entirely reasonable, and the drawing of the wrong one is identical to the drawing of the right one. The engine names the contradiction and counts the days.
Draft waits for review, review waits for rework, rework waits for draft. That is a loop, it has no schedule — there is no first task — and Mermaid will draw it anyway, in colour, with dates. Here nothing is drawn on a time axis at all, because no date exists to draw, and the engine names the loop in the order you trace it.
Two bars drawn side by side look like two things happening in parallel, and they are — unless the same person is on both. Sam is booked at 200% for a fortnight here. The bars are the correct bars; the plan is still impossible. The engine sweeps every resource against its declared capacity and says who, when, and on what.
gantt · ← Browse all engines · Quick-start guide