Visual C4 diagram authoring

Create and edit C4 elements and relationships on a visual canvas while Acefy keeps the underlying AAL source synchronized.

AAL C4 v0.2 — Level-Aware Semantics
Getting Started
Sign in

Use C4 AI Instructions with an external AI assistant, then copy its generated AAL into a new C4 Architecture project. Inspect diagnostics and explicitly Save.

Independent project copies
Use Clone to cloud or Clone to local from a project card’s menu. The copy includes the last saved source and layout; future changes do not sync. Duplicate keeps the same location. Cloning is available only on the Projects page. At three cloud projects, delete one to make room; existing cloud projects can still be saved.

Visual Authoring

Acefy Architecture supports two synchronized authoring approaches:

  • AAL Authoring — write AAL source directly in the editor.
  • Visual Designer Authoring — create and edit architecture on the canvas.

Both surfaces operate on the same normalized Architecture Model. Visual actions update the model and synchronize valid AAL source; typing AAL updates the model and the canvas. There is only ever one source of truth.

Synchronization
AAL Source ↔ Architecture Model ↔ Designer ↔ Inspector

Visual authoring never bypasses C4 hierarchy or semantic validation. A visually-created object is identical to an AAL-created object once stored in the model.

Creating Objects

Use the + Add button in the Designer toolbar to create architecture objects without typing AAL. The available object types adapt to the current view:

  • Context View — Person, Software System
  • Container View — Person, Software System, Container
  • Component View — Person, Software System, Container, Component

The creation dialog collects a Name (required), an auto-generated ID (editable), a level-aware Semantic Type, and optional metadata (description, technology, owner, tags, color).

Hierarchy is enforced: a Container requires a parent Software System, and a Component requires a parent Container. If a parent is not already selected, the dialog asks you to choose one.

Quick add from parent: when a System or Container is selected, its Inspector header shows a + Container / + Component button to create a child directly inside it.

Example flow:

Visual creation
Select a Software System
  → + AddContainerName: "Payment API"Semantic Type: apiCreate

The equivalent AAL is generated automatically and appears in the source editor. IDs are derived from the name as PascalCase (e.g. "Payment API" → PaymentAPI), with a numeric suffix if the ID is already in use.

Creating Relationships

Create relationships by dragging from one object's connection handle to another object. Move near an object edge to reveal its small +; its invisible hit target is larger and zoom-aware. The pointer-down object is always source and the release object is always destination, independent of geometry.

On a successful drop, a relationship Source -> Destination is created in the model and synchronized to AAL:

Example
MobileApp -> API

The new edge is selected automatically and its Inspector opens with the Description field focused, so you can immediately describe the relationship without switching to AAL.

Validation rules apply: relationships to nonexistent elements, self-relationships, and exact duplicate edges are blocked. Empty description, technology, protocol, and mode are left unset by default — enrich them in the Inspector.

Editing Objects & Relationships

Select any object to edit its metadata in the Inspector — name, semantic type, description, technology, owner, tags, and color. Changes update the model and synchronize AAL immediately.

Select a relationship to edit its semantics in the Inspector:

  • Description — the primary edge label, editable as a text field. Clearing it removes the description from AAL.
  • Technology — editable text field.
  • Protocol — controlled-vocabulary dropdown (not free text).
  • Interaction Mode — synchronous, asynchronous, event, stream, batch, file.

Example: editing a relationship description updates AAL and the canvas label together.

Example
API -> PolicySystem "Retrieves policies"

The Edge Style and Connection Points sections remain visual-only View Layout Metadata — they are not written to AAL.