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, and relationships using a clean, readable DSL. Watch it compile instantly entirely client-side.
Arrange components freely by dragging them on the grid. Position coordinates automatically round and write back to your DSL code in real time.
Paste and translate standard PlantUML sequence, activity, or class diagrams into DrakoFlow DSL instantly with case-insensitive component matching.
Export your diagram as a standalone, single-file HTML player equipped with interactive zooming, a navigation minimap, tag-based filtering, and a DSL code viewer.
Hovering over components on the canvas instantly highlights their corresponding declaration lines in the editor gutter for seamless navigation.
Share diagrams instantly without databases or user accounts. The entire diagram state is compressed and embedded directly within the share link.
Group system microservices and structural boundaries visually using standard UML Package directories or VerticalContainers.
Keep track of complex diagrams and coordinate spaces at a glance using a toggleable navigation minimap panel.
Enforce clean layout alignment and pixel-perfect rendering by locking element positions to grid cells with customizable sizing.
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"