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.
Three families of tool
- Drawing tools — draw.io, Excalidraw, Visio, Lucidchart — Fastest to start, universally available, and every diagram is an independent artefact. Nothing stops a box drifting out of sync with anything else.
- Diagrams as code — C4-PlantUML, Mermaid — Text in the repository, reviewed with the change. Excellent per diagram; no connective tissue between diagrams.
- Modelling tools — Structurizr, IcePanel, Viaduct — You describe elements and relationships once, and views are generated from the model. Renaming is safe, drilling down works, and "what depends on this?" is answerable.
What to actually evaluate
Every tool demos well. The differences show up at month six, so weight your evaluation towards the things that only hurt later:
- Drift resistance — When a container is renamed, how many places must change? One, or fifteen?
- Where the prose lives — If explanation cannot sit on the element, it will end up in a wiki and rot separately.
- Navigation — Can a reader click from a container into its components, and follow a relationship to what implements it?
- Export and lock-in — Can you get the model out as data — JSON, text, images — without a migration project?
- Cost of contribution — If only two people can update the diagrams, the diagrams will be wrong.
- Machine readability — Coding agents are now a real consumer of architecture context. A model an agent can query is worth more than a PNG.
- Where the model is stored — A hosted tool is one more system holding a map of your estate. If that is a conversation you would rather not have, the question is whether the tool runs on your own machine at all.
When the model cannot leave the building
Plenty of teams cannot put an architecture diagram in someone else's browser tab — defence, finance, health, anything under an audit that asks where the data sits. That rules out most of this category, because almost every modelling tool worth using is hosted.
Two honest options remain. Diagrams-as-code in your own repository, which keeps everything local but gives you no model to navigate. Or a desktop application, where the editor runs on the machine and the project is a file you own.
Viaduct Desktop is the second: the whole editor as a native app for macOS, Windows and Linux, projects stored as plain JSON files in a folder you choose, and an MCP server on 127.0.0.1 so Cursor and Claude Code read the same model without it reaching a server. Free for seven days on each machine, then €10 a month.
Worth checking before you commit
Ask any hosted tool where the data lives, who can read it, and what you get back if you leave. Ask any desktop tool how two people share a model — that is the trade the desktop makes.
Where Viaduct sits
Viaduct is a modelling tool built on the argument this guide keeps making: the reason architecture documentation fails is that the model and the explanation live in different systems.
So the four C4 levels are one navigable model, Markdown lives on the element, PlantUML sequences hang off the layer they belong to with participants drawn from the current diagram, database containers open an ER editor, and components carry API endpoint details. Local use needs no account; an MCP server exposes the same model to Cursor and Claude Code.
It comes two ways. In the browser it is free, and signing in adds cloud storage, sharing and live collaboration. On the desktop it is the same editor as a native app, with the model on your own disk and its MCP server running locally — the case described above.
Honest limits
It does not prove your diagram matches production, and it does not replace ADRs, OpenAPI or observability. It gives the documentation work a home — it does not remove it.
If you are starting from nothing
- Whiteboard the System Context and the Container diagram this week, in any tool at all.
- Put them somewhere a new joiner will trip over — the README, the service catalogue, the onboarding doc.
- Wait a month. Note every time someone asks a question the diagrams should have answered.
- Only then pick the tool, and pick it against the questions you actually collected.
Frequently asked
What is a good Structurizr alternative?
It depends what pushed you away from it — the DSL, the hosted service, or the model-first idea itself. Each has a different answer, and they are worked through on the Structurizr page in this guide.
How does C4 relate to arc42?
arc42 is a template for the whole document; C4 is the notation for the diagrams inside it, most obviously in section 5. They combine rather than compete — see the arc42 page in this guide.
Is there a C4 modelling tool that works offline?
Yes. Diagrams-as-code with PlantUML or Mermaid is entirely local, and for a navigable model there are desktop applications — Viaduct Desktop runs natively on macOS, Windows and Linux, keeps projects as JSON files on your machine, and serves its own MCP endpoint on localhost. An activated copy keeps working with no network between licence checks.
Can I use draw.io or Excalidraw for C4?
Yes, and for a first pass you should. They stop paying once you have enough diagrams that consistency between them matters more than the speed of drawing any one.
Do I need a paid tool for C4?
No. C4 is a convention, not a product, and PlantUML plus a whiteboard covers a lot. Tools earn their cost when the model has to stay correct across many people and many months.
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.
