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.

Bausteinsicht exists in the broader landscape of architecture-as-code and C4 modeling tools. The following projects solve similar or overlapping problems:

Project Description

Structurizr

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).

C4 model

The methodology behind the 4-level architecture abstraction (Context, Container, Component, Code). Bausteinsicht is C4-inspired but supports user-defined, unlimited nesting levels.

LikeC4

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.

Isoflow

A visual-first architecture diagramming tool with isometric rendering. Focused on visual editing rather than text-based modeling.

C4InterFlow

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.