How rogoveo/gitdiagram works
GitDiagram accepts a repository page request and produces an interactive architecture diagram with a streamed explanation; users can inspect linked components and export the diagram. A separate video workflow serves existing explainers and, when enabled, generates and renders narrated videos. The graph emphasizes the evidenced diagram-generation calls and video API boundaries. Several feature and storage modules are represented from the repository tree and README, but their internal wiring is not shown in the sampled excerpts.
Main entry points: stream/route.ts Diagram API routes · repo-page-client.tsx Repository page · store.ts Video artifact store · generate/route.ts Video generation API
Components 32
Diagram experience
- Repository page
src/app/[username]/[repo]/repo-page-client.tsx - Diagram workspace
src/components/generation/repository-workspace.tsx - Diagram state hook
src/hooks/useDiagram.ts - Diagram export
src/components/generation/diagram-export.tsx
Diagram generation
- Diagram API routes
src/app/api/generate/stream/route.ts - Request admission
src/server/generate/request-admission.ts - GitHub ingestion
src/server/generate/github.ts - Source context
src/server/generate/source-context.ts - Context selection
src/server/generate/repository-context.ts - Model streaming
src/server/generate/openai.ts - Graph validation
src/server/generate/graph-planner.ts - Diagram compilation
src/server/generate/graph.ts - Diagram persistence
src/server/storage/diagram-state.ts - Diagram preview
src/app/api/diagram-preview/route.ts
Explainer videos
- Video watch page
src/app/[username]/[repo]/video/video-watch-page-client.tsx - Explainer player
src/components/explainer/explainer-video.tsx - Video catalog API
src/app/api/video/route.ts - Video generation API
src/app/api/video/generate/route.ts - Video generation pipeline
src/server/explainer/generate.ts - Video artifact store
src/server/explainer/store.ts - MP4 render API
src/app/api/video/render/route.ts - Segmented renderer
src/server/explainer/segments.ts - Scene engine
public/video-engine/stage.js
Browse and discovery
- Browse catalog
src/components/browse-catalog.tsx - Browse index API
src/app/api/browse-index/route.ts - Browse index
src/server/browse-index-cache.ts
Operations and sponsorship
- Admin dashboard
src/app/admin/admin-dashboard.tsx - Sponsor redirect
src/app/out/[campaign]/route.ts
Other components
- Repository visitor
- GitHub
- AI model provider
- Sponsor destination
Connections 33
- Repository visitor → Repository page: opens repository
- Repository page → Diagram state hook: loads state
- Repository page → Diagram workspace: renders workspace
- Diagram state hook → Diagram API routes: requests generation
- Diagram API routes → Request admission: admits request
- Diagram API routes → GitHub ingestion: fetches repository
- GitHub ingestion → GitHub: reads repository
- Diagram API routes → Source context: fetches source
- Source context → Context selection: selects context
- Diagram API routes → Model streaming: streams explanation
- Model streaming → AI model provider: requests completion
- Diagram API routes → Graph validation: validates graph
- Graph validation → AI model provider: requests graph
- Diagram API routes → Diagram compilation: compiles diagram
- Diagram compilation → Diagram persistence: persists state
- Repository page → Diagram preview: loads preview
- Diagram workspace → Diagram export: offers export
- Repository visitor → Video watch page: opens video
- Video watch page → Explainer player: shows player
- Explainer player → Video catalog API: checks availability
- Video catalog API → Video artifact store: reads artifact
- Video generation API → Video artifact store: checks artifact
- Video generation API → Video generation pipeline: starts job
- Video generation pipeline → Video artifact store: stores video
- MP4 render API → Video artifact store: reads artifact
- MP4 render API → Segmented renderer: renders MP4
- Segmented renderer → Scene engine: renders scenes
- Repository visitor → Browse catalog: explores catalog
- Browse catalog → Browse index API: loads index
- Browse index API → Browse index: reads index
- Admin dashboard → Repository visitor: manages service
- Repository visitor → Sponsor redirect: follows campaign
- Sponsor redirect → Sponsor destination: redirects