Introduction and Goals
Bausteinsicht is an architecture-as-code tool that uses draw.io as its visual frontend. It maintains a structured architecture model in a JSON-based DSL and synchronizes it bidirectionally with draw.io diagrams.
Requirements Overview
Bausteinsicht addresses the gap between structured architecture models and widely adopted visual diagramming tools.
| Requirement | Description |
|---|---|
Architecture Model |
A JSON-based DSL serves as single source of truth for all architecture elements, relationships, and metadata. |
draw.io Integration |
draw.io serves as the visual frontend. Templates define the styling, fully customizable by the user. |
Bidirectional Sync |
Changes in the model are reflected in draw.io views and vice versa. New elements, updated descriptions, and relationships are synchronized in both directions. |
Flexible Hierarchy |
Element hierarchy is user-defined and not limited to the 4 C4 levels. Components of components are valid. |
CLI & Watch Mode |
A CLI provides commands for sync, validation, and watching. CLI commands also enable LLM-driven architecture maintenance. |
Template System |
Templates are draw.io files containing styled example elements. Users create and customize templates entirely within draw.io. |
See PRD-001 for the full product requirements.
Quality Goals
The top three quality goals driving architectural decisions:
| Priority | Quality Goal | Scenario |
|---|---|---|
1 |
Learnability |
A developer unfamiliar with Bausteinsicht creates a working architecture model with draw.io views within 30 minutes using only the documentation and IDE autocompletion. |
2 |
IDE Support |
When editing the JSON model in VS Code, IntelliJ, or Neovim, the editor provides autocompletion, validation, and hover documentation without installing any Bausteinsicht-specific plugin. |
3 |
LLM Friendliness |
An LLM agent (e.g., Claude) can read the architecture model, add a new element with relationships, and trigger synchronization using only CLI commands — without human intervention. |
See Chapter 10 for the full quality requirements and scenarios.
Stakeholders
| Role/Name | Contact | Expectations |
|---|---|---|
Software Architect |
Primary user |
Maintains architecture models visually in draw.io with a structured model behind the scenes. Expects flexible hierarchy and easy template customization. |
Developer |
Team member |
Consults architecture diagrams in draw.io. Expects diagrams to always reflect the current model state. |
LLM Agent |
AI assistant (e.g., Claude) |
Modifies architecture models via CLI commands. Expects a machine-readable JSON format and predictable CLI behavior. |
Related Projects
Bausteinsicht exists in the broader landscape of architecture-as-code and C4 modeling tools. The following projects solve similar or overlapping problems:
| Project | Description |
|---|---|
The original C4 model tooling by Simon Brown. Provides a dedicated DSL, web-based renderer, and export to many formats. DSL is source-of-truth (no bidirectional sync with diagrams). |
|
The methodology behind the 4-level architecture abstraction (Context, Container, Component, Code). Bausteinsicht is C4-inspired but supports user-defined, unlimited nesting levels. |
|
A modern C4-inspired tool with a custom DSL, VS Code extension, and live web preview. Supports user-defined element kinds and flexible nesting, similar to Bausteinsicht. |
|
A visual-first architecture diagramming tool with isometric rendering. Focused on visual editing rather than text-based modeling. |
|
Extends the C4 model with interface and flow concepts for documenting system interactions at a more granular level. |
Bausteinsicht’s differentiator is bidirectional synchronization between a text model (JSONC) and draw.io diagrams — edits in either direction are merged. See ADR-001 for a detailed comparison of DSL formats.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.