# bilal2207/ai-film-maker architecture

> Architecture diagram of the GitHub repository bilal2207/ai-film-maker, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bilal2207/ai-film-maker
- Repository: https://github.com/bilal2207/ai-film-maker

## Overview

AI Filmmaker is an early foundation for an AI-native filmmaking platform. Its intended workflow spans idea and script development through production, footage, editing, VFX, color, sound, and distribution, with voice-first interaction; the checked-in UI currently renders only a status screen. The sampled backend serves a health endpoint, while the DSL and editor package provide starter types. Dashed links denote README-described architecture or planned capabilities, not verified runtime calls; service wiring beyond the sampled code remains uncertain.

Main entry points: [`apps/api/internal/server/server.go`](https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/internal/server/server.go) (HTTP server), [`packages/film-dsl/src/index.ts`](https://github.com/bilal2207/ai-film-maker/blob/main/packages/film-dsl/src/index.ts) (Film DSL), [`apps/api/cmd/server/main.go`](https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/cmd/server/main.go) (API entry), [`apps/web/src/main.tsx`](https://github.com/bilal2207/ai-film-maker/blob/main/apps/web/src/main.tsx) (Web entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Filmmaking experience"]
  node_web_entry["Web entry<br/>[main.tsx]"]
  node_web_app["Foundation UI<br/>[App.tsx]"]
  node_voice["Voice-first interface"]
  node_film_workflow["Film lifecycle"]
end

subgraph group_domain["Film domain and editing"]
  node_film_dsl["Film DSL<br/>[index.ts]"]
  node_editor["Editor core<br/>[index.ts]"]
  node_media_pipeline["Media pipeline"]
  node_film_intelligence["Film Intelligence"]
end

subgraph group_services["Application services"]
  node_api_main["API entry<br/>[main.go]"]
  node_api_config["API config<br/>[config.go]"]
  node_api_server["HTTP server<br/>[server.go]"]
  node_health_handler["Health handler<br/>[health.go]"]
  node_ai_service["AI service<br/>[main.py]"]
  node_database_helper["Database helper<br/>[db.go]"]
end

subgraph group_infrastructure["Local infrastructure"]
  node_postgres[("PostgreSQL<br/>[docker-compose.yml]")]
  node_redis[("Redis<br/>[docker-compose.yml]")]
end

node_filmmaker(("Filmmaker"))

node_filmmaker -->|"opens"| node_web_entry
node_web_entry -->|"renders"| node_web_app
node_api_main -->|"loads"| node_api_config
node_api_main -->|"starts"| node_api_server
node_api_server -->|"routes"| node_health_handler
node_editor -->|"imports types"| node_film_dsl
node_web_app -.->|"REST / WebSocket"| node_api_server
node_api_server -.->|"storage architecture"| node_postgres
node_api_server -.->|"storage architecture"| node_redis
node_api_server -.->|"service architecture"| node_ai_service
node_film_intelligence -.->|"planned contract"| node_film_dsl
node_ai_service -.->|"planned contract"| node_film_dsl
node_film_dsl -.->|"editing commands"| node_editor
node_film_workflow -.->|"planned media flow"| node_media_pipeline
node_filmmaker -.->|"planned input"| node_voice

click node_web_entry "https://github.com/bilal2207/ai-film-maker/blob/main/apps/web/src/main.tsx"
click node_web_app "https://github.com/bilal2207/ai-film-maker/blob/main/apps/web/src/App.tsx"
click node_voice "https://github.com/bilal2207/ai-film-maker/tree/main/apps/web"
click node_film_workflow "https://github.com/bilal2207/ai-film-maker/tree/main/apps/web"
click node_film_dsl "https://github.com/bilal2207/ai-film-maker/blob/main/packages/film-dsl/src/index.ts"
click node_editor "https://github.com/bilal2207/ai-film-maker/blob/main/packages/editor-core/src/index.ts"
click node_media_pipeline "https://github.com/bilal2207/ai-film-maker/tree/main/apps/ai"
click node_film_intelligence "https://github.com/bilal2207/ai-film-maker/tree/main/apps/ai"
click node_api_main "https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/cmd/server/main.go"
click node_api_config "https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/internal/config/config.go"
click node_api_server "https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/internal/server/server.go"
click node_health_handler "https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/internal/handlers/health.go"
click node_ai_service "https://github.com/bilal2207/ai-film-maker/blob/main/apps/ai/main.py"
click node_database_helper "https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/internal/database/db.go"
click node_postgres "https://github.com/bilal2207/ai-film-maker/blob/main/infrastructure/docker-compose.yml"
click node_redis "https://github.com/bilal2207/ai-film-maker/blob/main/infrastructure/docker-compose.yml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web_entry,node_web_app,node_voice,node_film_workflow toneBlue
class node_film_dsl,node_editor,node_media_pipeline,node_film_intelligence toneAmber
class node_api_main,node_api_config,node_api_server,node_health_handler,node_ai_service,node_database_helper toneMint
class node_postgres,node_redis toneRose
class node_filmmaker toneIndigo
```

## Components

### Filmmaking experience

- [Web entry](https://github.com/bilal2207/ai-film-maker/blob/main/apps/web/src/main.tsx): `apps/web/src/main.tsx`
- [Foundation UI](https://github.com/bilal2207/ai-film-maker/blob/main/apps/web/src/App.tsx): `apps/web/src/App.tsx`
- [Voice-first interface](https://github.com/bilal2207/ai-film-maker/tree/main/apps/web): `apps/web`
- [Film lifecycle](https://github.com/bilal2207/ai-film-maker/tree/main/apps/web): `apps/web`

### Film domain and editing

- [Film DSL](https://github.com/bilal2207/ai-film-maker/blob/main/packages/film-dsl/src/index.ts): `packages/film-dsl/src/index.ts`
- [Editor core](https://github.com/bilal2207/ai-film-maker/blob/main/packages/editor-core/src/index.ts): `packages/editor-core/src/index.ts`
- [Media pipeline](https://github.com/bilal2207/ai-film-maker/tree/main/apps/ai): `apps/ai`
- [Film Intelligence](https://github.com/bilal2207/ai-film-maker/tree/main/apps/ai): `apps/ai`

### Application services

- [API entry](https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/cmd/server/main.go): `apps/api/cmd/server/main.go`
- [API config](https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/internal/config/config.go): `apps/api/internal/config/config.go`
- [HTTP server](https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/internal/server/server.go): `apps/api/internal/server/server.go`
- [Health handler](https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/internal/handlers/health.go): `apps/api/internal/handlers/health.go`
- [AI service](https://github.com/bilal2207/ai-film-maker/blob/main/apps/ai/main.py): `apps/ai/main.py`
- [Database helper](https://github.com/bilal2207/ai-film-maker/blob/main/apps/api/internal/database/db.go): `apps/api/internal/database/db.go`

### Local infrastructure

- [PostgreSQL](https://github.com/bilal2207/ai-film-maker/blob/main/infrastructure/docker-compose.yml): `infrastructure/docker-compose.yml`
- [Redis](https://github.com/bilal2207/ai-film-maker/blob/main/infrastructure/docker-compose.yml): `infrastructure/docker-compose.yml`

### Other components

- **Filmmaker**

## Connections

- Filmmaker → Web entry: opens
- Web entry → Foundation UI: renders
- API entry → API config: loads
- API entry → HTTP server: starts
- HTTP server → Health handler: routes
- Editor core → Film DSL: imports types
- Foundation UI → HTTP server: REST / WebSocket
- HTTP server → PostgreSQL: storage architecture
- HTTP server → Redis: storage architecture
- HTTP server → AI service: service architecture
- Film Intelligence → Film DSL: planned contract
- AI service → Film DSL: planned contract
- Film DSL → Editor core: editing commands
- Film lifecycle → Media pipeline: planned media flow
- Filmmaker → Voice-first interface: planned input
