Appearance
Visual Architecture Diagrams
Created: 2026-04-08 Status: IDEA
Problem
The documentation is text-heavy. Key architectural concepts like data flow, component hierarchies, and state management are hard to grasp without visual aids. Diagrams with boxes, arrows, and hierarchies would significantly improve comprehension.
Proposed Diagrams
1. Data Flow Overview
Show the full pipeline with boxes and arrows:
Application-Frontend (Vuex) → Application-Backend → Creative-Composer → Creative-Engine (DataStore)- What data lives where
- Which direction data flows (unidirectional)
- How the iframe boundary separates Frontend Vuex from Engine DataStore
2. Block & Component Hierarchy
Creative
├── creativeProperties (name, format, type)
├── logicSettings (flow/operators)
└── creativeBlocks
├── textProperties-1 (visual element, multiple instances)
├── graphicProperties-1
├── buttonProperties-1
├── formProperties (specialized, single instance)
│ ├── formInputProperties-1 (sub-block)
│ └── formButtonProperties-1 (sub-block)
├── sliderProperties
│ └── slides[] (sub-blocks)
└── videoProperties3. Operator → Block Resolution
How flow operators target blocks — the abbreviation system:
Flow Editor Block System
targetAbbrevOpName: "g1" → classNameFromBlockName("graphicProperties-1") = "g1"
→ getBlockByName("graphicProperties-1")
→ block data (image URL, styles, etc.)This is currently undocumented and spread across multiple files.
4. Vuex Store Module Map
Vuex Root
├── auth (user, permissions)
├── builder (active creative, master/child, preview state)
├── blocks (creativeBlocks, creativeProperties, selectedBlockPath)
├── creatives (creative list)
├── preview (iframe state)
└── ... (18+ modules)5. Builder Tab Architecture
Builder
├── Visuals Tab
│ ├── Left: Block List (AddBlockTool)
│ ├── Center: Preview (iframe → Creative-Engine)
│ └── Right: Configuration Panel (*Configuration.vue → configurationLogic mixin)
├── Flow Tab
│ └── CavaiFlow → OperatorBase → *Op.vue components
└── Delivery TabFormat Considerations
- Could use Mermaid diagrams (renderable in markdown)
- Animated diagrams for data flow sequences (e.g. what happens when an operator fires)
- Interactive diagrams if the documentation platform supports it
- Color coding: Frontend = blue, Backend = green, Engine = orange
Documentation Gaps Found (2026-04-08)
These topics are not well documented and should be addressed:
Block abbreviation system — how
classNameFromBlockName()works, where it's used, the full mapping logic. Currently spread acrossBlocks/utils.ts,TargetOpSelector.vue, andOperatorBase.vuewith no central reference.Operator ↔ Block data access — how operators (in the Flow tab) can read/write block data (in the Visuals tab). The
blocksVuex module getters are powerful but undocumented for operator use cases.Block property schemas — what properties each block type has (e.g. where does graphicProperties store its image URL?).
defaults.tshas the defaults but there's no reference doc listing all properties per block type.