%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#1e3a5f', 'primaryTextColor': '#fff', 'primaryBorderColor': '#0d253f', 'lineColor': '#64748b', 'fontFamily': 'Inter, system-ui, sans-serif'}}}%%
graph TB
classDef frontend fill:#3b82f6,stroke:#1d4ed8,color:#fff,stroke-width:2px,font-weight:bold
classDef api fill:#1e3a5f,stroke:#0d253f,color:#fff,stroke-width:2px,font-weight:bold
classDef data fill:#10b981,stroke:#059669,color:#fff,stroke-width:2px
classDef ai fill:#8b5cf6,stroke:#6d28d9,color:#fff,stroke-width:2px
classDef cache fill:#ef4444,stroke:#b91c1c,color:#fff,stroke-width:2px
classDef obs fill:#f59e0b,stroke:#d97706,color:#fff,stroke-width:2px
classDef safety fill:#06b6d4,stroke:#0891b2,color:#fff,stroke-width:2px
Browser["fa:fa-desktop Browser<br/>React + Tailwind + Babel"]:::frontend
Nginx["fa:fa-server Nginx :3080"]:::frontend
subgraph Core ["FastAPI :8000"]
direction TB
API["fa:fa-bolt API Layer<br/>REST + SSE + WebSocket"]:::api
LG["fa:fa-sitemap LangGraph<br/>8-node Clarifier"]:::api
SG["fa:fa-code SQL Gen<br/>+ sqlglot safety"]:::safety
end
PG["fa:fa-database Postgres 16<br/>8 tables"]:::data
DB["fa:fa-warehouse Databricks<br/>SQL Warehouse"]:::ai
Redis["fa:fa-bolt Redis 7<br/>cache + pub/sub"]:::cache
Bedrock["fa:fa-brain AWS Bedrock<br/>Sonnet 4.6 / Opus 4.7"]:::ai
Langfuse["fa:fa-chart-timeline Langfuse<br/>LLM observability"]:::obs
Browser -->|"HTTP + SSE + WS"| Nginx
Nginx --> API
API --> LG
API --> SG
API --> PG
API --> Redis
LG --> Bedrock
SG --> Bedrock
SG --> DB
API -.->|"opt-in"| Langfuse
Redis -->|"pub/sub"| API
API -->|"WebSocket"| Browser
Speaker notes (45-60s)
Point to the tabs: "12 integrations across four categories. Every one is real. Every one has a test file you can open."
Walk the sequence diagram top to bottom: "User describes a widget in plain English. LangGraph orchestrates 8 nodes. Bedrock generates the spec. sqlglot validates the SQL with 7 safety checks. Databricks executes against real Asurion data. Redis caches. The tile renders with a purple badge proving it came from the warehouse."
Drop the number: "106 backend tests, 70 frontend tests, 18 ADRs. This is not a prototype that calls an API once."