Context
The system as a box, the people and the other systems it talks to. The diagram a non-technical audience can read.
Viaduct
C4 modelling
A C4 modeling tool builds one model of a software system and draws views on top of it — context, containers, components and code. Because the elements are data rather than boxes, renaming a service renames it everywhere, and every diagram stays a view of the same system instead of another picture to keep up to date.
01The four levels
C4 is four levels of abstraction, not a notation. You zoom out for an audience that needs the shape of the thing, and in for one that has to build it — and it is the same model underneath either way.
The system as a box, the people and the other systems it talks to. The diagram a non-technical audience can read.
What is deployed and runs: applications, APIs, workers, databases, brokers — and how they reach each other.
Inside one container: the modules it is built from, the endpoints it exposes, the topics it publishes.
Classes and functions. Rarely worth drawing by hand, and the level most tools stop short of.
02Choosing one
Most of the disappointment with these tools comes from answering the first question wrong and discovering it a quarter later, when the diagrams no longer match anything.
A diagramming tool knows boxes and lines. A modelling tool knows that this box is a service, so it can validate, query and rename across every view. Everything else on this list follows from that answer.
A DSL in git suits engineers and pull requests. A canvas suits a room with product people in it. Tools that try to be both usually are not.
Files next to the source, or a hosted workspace. Files diff in review; a workspace is open to people who do not clone repositories.
An open format you can export — JSON, a DSL, PlantUML, an OpenAPI document — is the difference between a model and a hostage.
Decisions, contracts and flows kept somewhere else drift apart from the diagram within a quarter. Kept on the elements, they move with them.
Coding agents now write a large share of the code. A model they can read over MCP is context; a model they cannot is a picture they will guess around.
03Where Viaduct fits
Viaduct is a visual C4 modelling tool: you open a system to see its containers, a container to see its components. Documentation, PlantUML sequences, ER schemas, OpenAPI and Protobuf contracts and data flows hang off the elements they describe, so a service, its contract and its explanation are one thing rather than three that drift apart. A hosted MCP server serves all of it to Cursor, Claude Code and Claude Desktop, which read the architecture instead of guessing it from the repository. The browser edition is free with an account; the desktop app keeps projects as JSON files on your own machine.
04Questions
A C4 modeling tool builds one model of a software system and draws views on top of it — context, containers, components and code. Because the elements are data rather than boxes, renaming a service renames it everywhere, and every diagram stays a view of the same system instead of another picture to keep up to date.
A diagramming tool stores pictures: the same service drawn on four boards is four boxes, and renaming it is four edits. A modelling tool stores the system — elements and relationships — and a diagram is a view of part of it. Renaming happens once, the views can be queried, and the model can be exported as data.
Yes, several. Structurizr is open source and runs on your own machine. Viaduct is free in the browser with an account — all four levels, documentation, flows, collaboration and the MCP server, with no trial clock. Most hosted tools have a free tier with a cap on editors or on how many elements the model may hold.
Look for an MCP server rather than an export button. Viaduct serves the model over a hosted MCP endpoint, so Cursor, Claude Code and Claude Desktop read the architecture and write back to it as work is done. Structurizr describes its DSL as AI friendly because it is text an agent can edit, and IcePanel lists an MCP integration for keeping a model updated.
For one diagram in a readme, draw.io is fine and free. The cost arrives later: nothing links the boxes to anything, so the picture and the system drift apart, and nobody notices until someone onboards. A modelling tool earns its place when more than one person depends on the answer being current.
No. C4 is a set of four levels of abstraction for describing software architecture, not a notation — you can draw it in UML, in boxes and arrows, or in whatever a tool gives you. It is deliberately smaller than UML, which is most of why teams adopt it.
Every level, the documentation, the flows and the MCP server. An account, and no trial clock on any of it.
Create a free account