Design, visualize, and maintain your software architecture with a modern DSL. Version controlled with your code.
Simple language to describe your model, LLM-friendly
Access your model from the code and extend capabilities
Provide architectural context for your developers and agents
Immediate feedback, preview and validation in your editor
Built for modern development teams who value clarity, collaboration, and code-first workflows.
Define your system using a clean, readable DSL designed for clarity and control.
See diagrams update as you type — real-time visualization, no manual sync needed.
Store diagrams in Git, track diffs, and collaborate with familiar developer workflows.
Expose your architecture to AI agents via MCP or API — no extra effort.
Built on the proven C4 model, extended with flexibility and modern customization options.
Embed interactive diagrams into docs, websites or apps - React or Webcomponents.
Write architecture like code. See diagrams appear instantly.
// You start with defining your terms and ...specification { // ... "types" of your elements element actor { style { shape person // how to render } } element system element component // and "typed" relationships (if you need) relationship async}
// Here goes your model, the single source of truthmodel { customer = actor 'Customer' { description 'A user of our product with active subscription' -> ui 'opens in browser' }
cloud = system 'Our SaaS' { backend = component 'Backend' { icon tech:graphql description 'Implements business logic and provides GraphQL API' }
ui = component 'Frontend' { description 'NextJS application' style { icon tech:nextjs shape browser } }
ui -[async]-> backend 'requests via HTTPS' }}
// And finally, you define what to renderviews { view index { title 'Landscape view' include *, cloud.*
style cloud.* { color green } }}Try it yourself with our interactive playground
Launch Playground