Tech Stack — Accessible Video Processing Platform
Backend
| Component |
Package |
Version |
Role |
| Web framework |
FastAPI |
0.115.0 |
Async REST + WebSocket |
| Task queue |
Celery |
5.3.4 |
Background AI processing |
| Database driver |
Motor (AsyncIOMotor) |
latest |
MongoDB async driver |
| Cache / broker |
Redis |
7.2 |
Celery broker + rate limit state |
| Data validation |
Pydantic |
2.5 |
Request/response schemas |
| Runtime |
Python |
3.11 |
Language version |
| Package manager |
Poetry |
latest |
Dependency management |
| ASGI server |
Uvicorn |
latest |
HTTP server |
| JWT |
python-jose |
^3.3.0 |
Token encode/decode |
| Password hash |
passlib + bcrypt |
latest |
Password hashing |
| Observability |
OpenTelemetry |
latest |
Tracing (currently disabled) |
| Error tracking |
Sentry SDK |
latest |
Exception capture |
| Metrics |
Prometheus client |
latest |
/metrics endpoint |
Frontend
| Component |
Package |
Version |
Role |
| UI framework |
React |
19.1.1 |
Component model |
| Build tool |
Vite |
7.1.2 |
Dev server + bundler |
| Language |
TypeScript |
5.8 |
Type safety |
| Server state |
TanStack Query |
5.85 |
API caching + invalidation |
| Routing |
React Router |
7.8 |
Client-side routing |
| Styling |
Tailwind CSS |
4.1 |
Utility-first CSS |
| Client state |
Zustand |
5.0 |
Auth token + UI state |
| Forms |
React Hook Form + Zod |
latest |
Form handling + validation |
| HTTP client |
Axios |
latest |
API calls with interceptors |
| E2E testing |
Playwright |
latest |
Browser automation |
| Unit testing |
Vitest + RTL |
latest |
Component tests |
External Services
| Service |
Provider |
Purpose |
Auth |
| Caption / AD generation |
Gemini 2.5 Pro |
Core AI processing |
API key |
| Translation |
Google Cloud Translate |
50+ language translation |
Service account |
| Transcreation |
Gemini 2.5 Pro |
Cultural adaptation |
API key |
| TTS (primary) |
Google Cloud TTS |
Audio description synthesis |
Service account |
| TTS (premium voices) |
ElevenLabs |
High-quality voice synthesis |
API key |
| File storage |
Google Cloud Storage |
Video + VTT files |
Service account |
| Email |
SendGrid |
Client delivery notifications |
API key |
| SSO |
Microsoft Entra ID |
Enterprise login |
OAuth2/OIDC |
| Error tracking |
Sentry |
Exception capture + performance |
DSN |
| Secrets |
GCP Secret Manager |
Production credentials |
Service account |
Database
| Store |
Technology |
Host |
Purpose |
| Primary DB |
MongoDB Atlas |
Cloud (M10+) |
Job documents, users, glossaries |
| Cache / broker |
Redis |
Docker (local) / Cloud (prod) |
Celery tasks, rate limit counters |
| Vector index |
Atlas Vector Search |
In MongoDB Atlas |
Glossary embedding retrieval |
Infrastructure
| Layer |
Technology |
Notes |
| Container runtime |
Docker + Docker Compose |
All backend services containerized |
| Reverse proxy |
Apache 2.4 |
Modules: mod_proxy, mod_proxy_wstunnel, mod_rewrite |
| Server OS |
Linux |
optical-web-1 (GCP VM, 32GB RAM, 8 CPU) |
| Python env |
Poetry virtualenv |
Inside Docker containers |
| Node env |
Node 20+ / npm |
Frontend build |
Configuration Files
| File |
Purpose |
backend/pyproject.toml |
Python deps + ruff config |
backend/mypy.ini |
mypy type-check config |
frontend/package.json |
Node deps |
frontend/eslint.config.js |
ESLint rules |
frontend/tsconfig.json |
TypeScript config |
frontend/playwright.config.ts |
E2E test config |
docker-compose.yml |
Base services |
docker-compose.local.yml |
Local dev overrides |
docker-compose.prod.yml |
Production overrides |
.env.local |
Local secrets (gitignored) |
.env.production |
Production secrets (gitignored) |
.env.prod.example |
Template for production env |
Maintenance
Update triggers: Dependency version bump, new external service added, Python or Node runtime version change.
Verification: Versions match backend/pyproject.toml and frontend/package.json.