flowgo gallerycomparedocs flowgo
Comparisons · Mermaid · C4 · Structurizr

flowgo and the C4 model

C4 describes itself as a set of hierarchical diagrams — context, container, component, code. arc42's Building Block View is the same shape: level 2 zooms into a block of level 1, level 3 into a block of that. Both are drill-down specifications, and most tools in the category draw their levels as pictures — one file per level, no link between them. flowgo keeps the levels as one structure you go on editing: a box opens into the level below it, in a single plain-text file you can diff in a pull request.

The problem with levels as separate pictures

Nothing links level 2 back to the box on level 1 it belongs to. Nothing notices when they stop agreeing. So the container diagram gets updated in March, the component diagram does not, and by autumn the two describe different systems — and the person who would have to reconcile them is the person who stopped opening them.

In flowgo a map lives inside a box. Double-click the box and you are on the next level down; a breadcrumb walks you back out. One file, one artefact, one thing to keep current.

See it working → an arc42 Building Block View three levels deep, with its .flowgo source on the page.

Be clear about what flowgo is not

flowgo is not a C4 tool in the sense that Structurizr or Likec4 are. There are no C4 element types, no softwareSystem or container keywords, no model from which several views are derived, and no validation that your diagram obeys C4's rules. It will not stop you drawing something C4 would call wrong.

What it gives you is the hierarchy itself, in a text file, with a canvas on top. If you want the notation enforced, use a tool that enforces it. If what you actually want is levels that stay attached to each other and a file your team can edit without learning a DSL, keep reading.

How the levels map

C4arc42In flowgo
System contextBuilding Block View level 1The root map, /
ContainerLevel 2Inside a box: /oms
ComponentLevel 3Inside a box of that: /oms/checkout
CodeKeep going, or stop. The nesting has no fixed depth

In the file those are literally map /, map /oms and map /oms/checkout — three sections of one plain-text document, diffable line by line in a pull request.

Why an agent changes this

Asking an agent for a C4 diagram usually gets you Mermaid or PlantUML: a picture that is roughly right and that you cannot correct without editing the source by hand, one level at a time.

With flowgo the agent writes the file, you open it and drag the boxes it placed badly, and the file it wrote is the file you corrected. Same artefact, both directions. That is the whole difference between a diagram you keep and a diagram you regenerate and never trust.

Try it

No account, nothing to install.

Start a map

Coming from Structurizr's hosted service, which reaches end of life on 30 September 2026? There is a page for that, including what flowgo does not replace.