Comparison
Structurizr, and when to use something else
Structurizr is the reference implementation of C4, written by the person who invented C4. That is a real argument in its favour and worth saying before any comparison starts.
What Structurizr actually is
A model, described in a text DSL, from which views are generated. You declare the people, systems, containers and components once and the relationships between them, then declare which views to render. Change a name in the model and every view follows, because the views were never drawn — they were derived.
It comes in more than one shape: a free local version you run yourself against a workspace file, a hosted service, and an on-premises install. The DSL and the model are the same in all of them.
The part people underrate
It was built by Simon Brown, who defined C4. Where another tool has interpreted the model, Structurizr is the model. If fidelity to C4 is what you are optimising for, that argument is hard to beat.
Where the DSL-first approach costs you
- Contribution is gated on the DSL — Everyone who edits the architecture has to learn a text format and a build step. In practice that means one or two people maintain it and everyone else reads — which is how a model goes stale.
- Layout is a negotiation — Generated views need laying out, and arranging them is a recurring chore rather than a one-off. Teams end up fiddling with the renderer when they wanted to describe a system.
- Prose lives elsewhere — The model holds structure and short descriptions. Longer explanation goes to a wiki, and the wiki drifts from the model it explains.
- Agents read files, not models — A DSL in a repository is readable by a coding agent only as text. There is no query interface, so "what talks to the payments service, over which contract?" is a grep rather than an answer.
The honest shortlist
- Stay on Structurizr — If your team is comfortable in the DSL, the model lives in the repository beside the code, and reviews catch architecture changes — you already have the thing other tools are trying to reach. Do not move.
- Structurizr Lite — The same model and views, run locally against a workspace file, free. The right first step if the hosted service is what you are questioning rather than the approach.
- C4-PlantUML — Diagrams as code without the model. Each diagram is independent, so renaming is a find-and-replace across files, but it needs no service and reviews like any other text.
- IcePanel — Visual and collaborative, aimed at teams who want non-engineers contributing. Hosted only.
- Viaduct — A visual model rather than a DSL: four levels, documentation and sequences attached to the element they describe, and an MCP server so a coding agent queries the model instead of parsing it. Runs in the browser, or as a desktop app with the project as JSON files on your own machine.
How to choose without a trial month
- Count the people who will edit the model. One or two and comfortable with text? A DSL is fine. Six, including a product manager? It will not survive.
- Decide where the prose goes before you pick, not after. Whatever system holds the explanation is the one that has to stay in step.
- Check what leaves with you. Structurizr workspaces are JSON, C4-PlantUML is text, Viaduct exports JSON and OpenAPI — none of these should be a migration project.
- Ask whether an agent needs to read it. If coding agents are already in your workflow, a model they can query is worth more than one they must be told about.
Frequently asked
What is the best Structurizr alternative?
It depends on what pushed you away. If it was the DSL, a visual modelling tool such as Viaduct or IcePanel removes that barrier. If it was the hosted service, Structurizr Lite is free and runs locally with the same model. If it was the whole model-first idea, C4-PlantUML gives you diagrams as code with no model to maintain.
Is Structurizr free?
The local version you run yourself is free and open source; the hosted service is a paid subscription. Pricing changes, so check their site rather than an article — including this one.
Can I move a Structurizr model somewhere else?
A workspace is JSON, so the structure travels. What rarely travels is the view layout, because every tool arranges diagrams differently — budget for re-laying out the views rather than for re-entering the model.
Does Structurizr have an MCP server?
Not as part of the product at the time of writing. Agents read the DSL as text from the repository. Viaduct exposes the model over MCP so Cursor and Claude Code can query and edit it directly, which is the main structural difference between the two today.
The guide
The rest of the guide
Eight short pages covering the four levels, the notation, the comparisons people ask about, and the tooling decisions that only hurt six months in.
Level 1
The System Context diagram
One box for your system, the people who use it, and the systems it depends on. It is the only architecture diagram that a product manager, a security reviewer and a new engineer can all read on their first day.
Level 2
The Container diagram
The separately deployable pieces inside your system and the technology each one is built with. If a team draws only one architecture diagram, this is the one that earns its keep.
Level 3
The Component diagram
The major building blocks inside one container, what each is responsible for, and how they collaborate. Drawn per container, and only for the containers that are genuinely hard.
Level 4
The Code diagram
Classes, interfaces and their relationships inside a single component. The level almost everybody draws first and almost nobody should maintain by hand.
Comparison
C4 vs UML, ArchiMate and "boxes and lines"
C4 is not competing with UML — it is solving a different problem. Knowing which problem each one solves is what stops an architecture review turning into a notation argument.
Comparison
C4 and arc42
These two get compared as if you had to pick one. You do not: arc42 is the shape of the document, C4 is what goes in the picture. Teams that understand that use both and stop arguing.
Comparison
Structurizr, and when to use something else
Structurizr is the reference implementation of C4, written by the person who invented C4. That is a real argument in its favour and worth saying before any comparison starts.
Practice
C4 with PlantUML: diagrams as text
Text-based diagrams review like code, diff like code and survive like code. Here is how PlantUML fits a C4 model — and where writing everything by hand stops paying.
Comparison
C4 tools compared
Drawing tools, diagrams-as-code and modelling tools solve different halves of the problem. The right choice depends on whether you are producing pictures or maintaining a model — and on whether the model has to stay on your own machine.
See it as a model rather than a picture
Viaduct puts all four levels in one navigable model with the documentation attached. It runs locally in the browser — no account needed.
