ArchMeta · Built 2026-09-09T17:39:23.802Z

Archmeta Application C4 L2 Viewer

Software SystemArchMetaA platform for managing architecture documentation as code. Architects describe their organisation in a textual DSL stored in Git; the Kernel reads that repository into an in-memory graph and serves it over REST, the Viewer authors it, and the Publisher turns it into a static site. There is no database — Git is the source of truth, and the same commit always produces the same model. ContainerKernel ClientThe wire contract: the types crossing HTTP, and the predicates that must not be re-implemented on either side of it. Shared so the Viewer and the generated site cannot disagree about what a relationship means. ContainerKernelReads the repository into an in-memory graph and serves it over REST on port 7777. Never throws on model content: unresolved references, malformed attributes and rule violations become diagnostics, and the load always completes. A pure function of the repository — no clock, no randomness, no network during a load — so the same commit produces the same model and the same diagnostics forever. Viewer ContainerDiagram RenderThe rendering primitives both renderers share: geometry, element shapes, orthogonal routing, status styling, relationship chips and the link indicator. One implementation per render boundary is an enforced rule — a diagram must look the same on the canvas and on the published site, and the only way to guarantee that is to give them one function. ComponentBPMN ModelerEdits .bpmn files in place and links their shapes to model elements. The .bpmn file stays authoritative and is never regenerated, so a diagram drawn in another tool survives contact with ArchMeta. ComponentModel CanvasWhere diagrams are drawn and edited: selection, drag, containment, expansion and routing. Dropping an element entirely inside another re-parents it; the innermost candidate decides, so dropping something back where it already lives does nothing at all. ComponentEdit SessionThe staging layer. Edits stage and never apply — there is no path from a gesture to the filesystem. Pending operations show in the commit bar, Discard reverses them, and one commit sends the batch through the API. Enforced structurally rather than by convention. ComponentInspectorThe docked right pane: an element's metadata, its links, its derived data points and the diagnostics that concern it, fetched for that element rather than filtered from a whole-model read. REST over HTTPStages .bpmn changes intoStages every gesture into

Elements (9)

Kernel Clientc4:container

archmeta.kernel-client

The wire contract: the types crossing HTTP, and the predicates that must not be re-implemented on either side of it. Shared so the Viewer and the generated site cannot disagree about what a relationship means.

ArchMetac4:softwaresystem

archmeta

A platform for managing architecture documentation as code. Architects describe their organisation in a textual DSL stored in Git; the Kernel reads that repository into an in-memory graph and serves it over REST, the Viewer authors it, and the Publisher turns it into a static site. There is no database — Git is the source of truth, and the same commit always produces the same model.

Kernelc4:container

archmeta.kernel

Reads the repository into an in-memory graph and serves it over REST on port 7777. Never throws on model content: unresolved references, malformed attributes and rule violations become diagnostics, and the load always completes. A pure function of the repository — no clock, no randomness, no network during a load — so the same commit produces the same model and the same diagnostics forever.

Viewerc4:container

archmeta.viewer

The single-screen React SPA that is the primary authoring tool: model canvas, BPMN modeler, Markdown editor and Explore in one shell, flanked by a management pane and a docked Inspector. Never reads the whole graph — every instance read is a point read, a search or a bounded neighbourhood — and never touches the filesystem. Edits stage; only a commit sends them to the Kernel.

Also in:docker

BPMN Modelerc4:component

archmeta.viewer.bpmn-modeler

Edits .bpmn files in place and links their shapes to model elements. The .bpmn file stays authoritative and is never regenerated, so a diagram drawn in another tool survives contact with ArchMeta.

Model Canvasc4:component

archmeta.viewer.canvas

Where diagrams are drawn and edited: selection, drag, containment, expansion and routing. Dropping an element entirely inside another re-parents it; the innermost candidate decides, so dropping something back where it already lives does nothing at all.

Edit Sessionc4:component

archmeta.viewer.edit-session

The staging layer. Edits stage and never apply — there is no path from a gesture to the filesystem. Pending operations show in the commit bar, Discard reverses them, and one commit sends the batch through the API. Enforced structurally rather than by convention.

Inspectorc4:component

archmeta.viewer.inspector

The docked right pane: an element's metadata, its links, its derived data points and the diagnostics that concern it, fetched for that element rather than filtered from a whole-model read.

Diagram Renderc4:container

archmeta.diagram-render

The rendering primitives both renderers share: geometry, element shapes, orthogonal routing, status styling, relationship chips and the link indicator. One implementation per render boundary is an enforced rule — a diagram must look the same on the canvas and on the published site, and the only way to guarantee that is to give them one function.

Relationships (16)Relationships (1)

archmeta.kernel → archmeta.kernel-clientKernel → Kernel Clientc4:dependson

archmeta.kernel → archmeta.kernel-client

Stages .bpmn changes intoc4:sendsto

archmeta.viewer.bpmn-modeler → archmeta.viewer.edit-session

archmeta.viewer.canvas → archmeta.diagram-renderModel Canvas → Diagram Renderc4:dependson

archmeta.viewer.canvas → archmeta.diagram-render

Stages every gesture intoc4:sendsto

archmeta.viewer.canvas → archmeta.viewer.edit-session

archmeta.viewer.inspector → archmeta.viewer.edit-sessionInspector → Edit Sessionc4:sendsto

archmeta.viewer.inspector → archmeta.viewer.edit-session

archmeta.viewer → archmeta.diagram-renderViewer → Diagram Renderc4:dependson

archmeta.viewer → archmeta.diagram-render

archmeta.viewer → archmeta.kernel-clientViewer → Kernel Clientc4:dependson

archmeta.viewer → archmeta.kernel-client

REST over HTTPc4:uses

archmeta.viewer → archmeta.kernel

REST over HTTP — never IPC, never shared state

archmeta.viewer → archmeta.viewer.bpmn-modelerViewer → BPMN Modelerarchimate:composition

archmeta.viewer → archmeta.viewer.bpmn-modeler

archmeta.viewer → archmeta.viewer.canvasViewer → Model Canvasarchimate:composition

archmeta.viewer → archmeta.viewer.canvas

archmeta.viewer → archmeta.viewer.edit-sessionViewer → Edit Sessionarchimate:composition

archmeta.viewer → archmeta.viewer.edit-session

archmeta.viewer → archmeta.viewer.inspectorViewer → Inspectorarchimate:composition

archmeta.viewer → archmeta.viewer.inspector

archmeta → archmeta.diagram-renderArchMeta → Diagram Renderarchimate:composition

archmeta → archmeta.diagram-render

archmeta → archmeta.kernel-clientArchMeta → Kernel Clientarchimate:composition

archmeta → archmeta.kernel-client

archmeta → archmeta.kernelArchMeta → Kernelarchimate:composition

archmeta → archmeta.kernel

archmeta → archmeta.viewerArchMeta → Viewerarchimate:composition

archmeta → archmeta.viewer

← Home