Write clear, declarative DSL scripts. Get precise, high-res diagrams instantly. Reposition components freely with drag-and-drop mechanics and save coordinate overrides directly.
Clean design syntax, responsive UI components, and state-of-the-art layout engines packed into a browser-based workflow.
Define components, structures, properties, and relationships using a readable, lightweight DSL script. No coding needed.
Arrange objects freely by dragging. Overrides are written directly to your DSL code, preserving coordinates for subsequent loads.
Toggle locks on the canvas to disable item drags. Prevents accidental modifications while viewing or exporting diagrams.
Hovering over an SVG element instantly highlights its source code definition in the editor. Cross-reference files in a flash.
Toggle between stunning dark mode and light theme layouts, or completely override styles per component (background, border, text).
Export diagram selections or full canvases to PNG up to 4K Ultra-HD with custom paddings and background options.
Master the syntax in minutes. Learn the core component declarations and structure relationships.
The standard rectangular box, supporting corner rounding overrides and local inline theme customizations.
label: display title of the noderx / ry: corner rounding valuesthemeOverride: fill, border, text colorsDatabase: Rectangle {
label: "User Store"
rx: 8
ry: 8
themeOverride: {
backgroundColor: "#1e1e2e"
borderColor: "#cdd6f4"
textColor: "#f5e0dc"
}
}
Renders a UML folder-style boundary tab containing other components. Extremely useful for microservices domain scoping and module boundaries.
MyPackage: Package {
label: "billing.domain"
gap: 12
padding: 16
BillingService: UMLComponent {
label: "BillingService"
}
LedgerDB: Cylinder {
label: "Ledger DB"
}
}
Categorize components with metadata tags to group them and dynamically filter the preview diagram view.
@tags: ["tag1", "tag2"]@tags: ["frontend", "client"]
WebClient: Process {
label: "Frontend Web Client"
}
@tags: ["backend", "api"]
AuthService: Cube {
label: "Auth Service"
}
Define routes linking elements. The engine automatically draws orthgonal arrow routes, avoiding overlaps.
SourceID -> TargetID: "Label"Gateway -> AuthService: "Token verification"
Gateway -> RedisCache: "Check Session"