%%{init: {'theme': 'dark', 'themeVariables': { 'fontSize': '14px', 'fontFamily': 'JetBrains Mono, monospace', 'darkMode': true }}}%% graph TD classDef user fill:#000,color:#fff,stroke:#fff,stroke-width:2px; classDef vercel fill:#000,color:#fff,stroke:#fff,stroke-width:1px,stroke-dasharray: 5 5; classDef railway fill:#0b0e14,color:#fff,stroke:#a855f7,stroke-width:2px; classDef inngest fill:#0e1c26,color:#fff,stroke:#17d3d6,stroke-width:2px; classDef ai fill:#1e293b,color:#60a5fa,stroke:#3b82f6,stroke-width:1px; User(YouTuber):::user subgraph "Frontend (Vercel Edge)" UI[Next.js App]:::vercel end subgraph "Event Bus (Inngest)" Queue[Async Queue]:::inngest end subgraph "Compute Node (Railway)" Worker[Python Worker]:::railway FFmpeg[Audio Extract]:::railway Dict[Tech Dictionary]:::railway end subgraph "Intelligence" Nova((SOTA ASR Models)):::ai GPT((SOTA Reasoning Models)):::ai end User --> UI UI -- "1 Submit Job" --> Queue Queue -- "2 Wake Worker" --> Worker Worker -- "3 Extract" --> FFmpeg FFmpeg --> Nova Nova -- "4 Raw Text" --> Dict Dict -- "5 Corrected Text" --> GPT GPT -- "6 Final Docs" --> UI