Gesso Architecture
Full Gesso architecture in C4 style, drawn with
Mermaid. One file per view, under views/.
Views
| View | Scope |
|---|---|
| System Landscape | Every software system and person |
| Container View: Gesso CMS | CMS abstraction layer |
| Container View: Gesso Commerce | Commerce abstraction layer |
| Container View: Gesso Design System | Base design system |
| Container View: Project Design System | Project-specific components |
| Container View: Drupal Headless | Drupal's GraphQL surface |
| Container View: Frontend A | Delivery application |
Viewing
Each view is a plain Mermaid code block, so it renders anywhere Mermaid is supported:
- The hosted architecture site, which gives every view its own page
- GitLab, when browsing any file under
views/ - VS Code, via the built-in Markdown preview
- The Mermaid live editor, by pasting a single block
There is no external service and no license to renew.
Editing
Add or edit a file in views/, then run pnpm build to regenerate the hosted
site. New files are picked up automatically — the index and sidebar are
generated from the directory, and each file's # Heading becomes its title.
These diagrams replaced a Structurizr workspace, and they deliberately keep the C4 conventions that came with it:
| Element | Fill | Label format |
|---|---|---|
| Person | #08427b |
Name / [Person] |
| Software System | #1168bd |
Name / [Software System] |
| Container | #438dd5 |
Name / [Container] / description |
| Boundary | none | Subgraph titled with the system in scope |
Two conventions worth preserving: every relationship is drawn as a dotted arrow, and container views show only the elements that have a relationship defined at container level — not everything the parent system talks to.
Layout is left-to-right (flowchart LR). Two things Mermaid cannot reproduce
from the Structurizr renders: people are drawn as rounded boxes rather than a
person glyph, and boundary labels sit at the top of a subgraph rather than the
bottom.