| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
AI Video Generation Platform for Marketers — turn plain-language instructions into finished promotional videos, generated scene-by-scene with interchangeable AI video models.
Website · Report bug · Request feature
ClipForge is a single-tenant web app for marketers and small creative teams who need short promotional videos produced at scale, without learning a video editor. You describe a project in plain language, break it into scenes, and the platform generates an 8-second AI video clip per scene using one of three interchangeable models. When you like the takes, ClipForge merges them into a single downloadable MP4.
The product was designed around three real frustrations with off-the-shelf AI video generators:
clipforge/ ├── apps/ │ ├── api/ Express REST + WebSocket /ws/jobs │ ├── worker/ BullMQ workers (generation, merge, captions) │ └── web/ React + Vite SPA ├── packages/ │ ├── shared/ Zod schemas, constants, quota service │ ├── providers/ VideoProvider interface + Veo / Hailuo implementations │ ├── storage/ S3-compatible storage helpers (MinIO / S3 / R2) │ └── db/ Drizzle ORM schema + client ├── infra/ │ ├── prometheus/ scrape config │ ├── grafana/ dashboards + provisioning │ └── promtail/ Docker log shipping ├── docker-compose.yml ├── ClipForge_PRD.md # the source PRD └── Tasks.md # task tracker (48/48 done)
For a deeper architecture writeup, see docs/ARCHITECTURE.md.
Prerequisites: Docker 24+, Docker Compose v2, Node.js 20+ (for pnpm).
# 1. Clone
git clone https://github.com/techseria/clipforge.git
cd clipforge
# 2. Configure environment
cp .env.example .env
# edit .env: set GEMINI_API_KEY, MINIMAX_API_KEY, DATABASE_URL
# 3. Start everything
docker compose up -d
# 4. Open the app
open http://localhost:5173
# First-run admin: admin@clipforge.local / Admin@123
# (change the password after first login)For a non-Docker dev setup (running API + worker + Vite directly), see docs/DEVELOPMENT.md.
All environment variables are documented in .env.example. The most important:
| Variable | Required | Description |
|---|---|---|
| DATABASE_URL | ✅ | Postgres connection string (Neon, Supabase, RDS, or self-hosted) |
| REDIS_URL | ✅ | Redis connection string for BullMQ + rate limits |
| S3_ENDPOINT / S3_BUCKET / S3_ACCESS_KEY / S3_SECRET_KEY | ✅ | S3-compatible object storage (AWS S3, Cloudflare R2, MinIO) |
| GEMINI_API_KEY | For Veo | Google AI Studio key with Veo access |
| MINIMAX_API_KEY | For Hailuo | MiniMax coding-plan key (sk-cp-…) |
| INITIAL_ADMIN_EMAIL / INITIAL_ADMIN_PASSWORD | Optional | First-run admin credentials (default: admin@clipforge.local / Admin@123) |
| JWT_SECRET | ✅ | Used for session signing — generate a random 32+ char string for production |
| WEB_ORIGIN | ✅ | CORS origin for the web frontend (default: http://localhost:5173) |
Daily quota limits, model IDs, and per-provider config are stored in the provider_config database table and can be edited at runtime via /api/v1/admin/* endpoints (admin role required).
| Layer | Choice |
|---|---|
| Frontend | React 18 + Vite + TanStack Router + TanStack Query + Tailwind |
| Backend | Express + Zod + argon2 + cookie sessions + WebSocket |
| Worker | BullMQ (Redis) + FFmpeg + fluent-ffmpeg |
| AI providers | @google/generative-ai-style REST (Veo predictLongRunning) + MiniMax v1/video_generation |
| Database | PostgreSQL 16+ via Drizzle ORM |
| Storage | S3-compatible (MinIO in dev, AWS S3 / Cloudflare R2 in prod) |
| Observability | Prometheus + Grafana + Loki + Promtail |
| Auth | Session cookie (httpOnly, SameSite=Lax, 30-day TTL) + argon2id |
All endpoints under /api/v1. Authentication via clipforge_session httpOnly cookie.
POST /auth/register create account POST /auth/login start session POST /auth/logout end session GET /auth/me current user GET /projects list user's projects POST /projects create project GET /projects/:id project + scenes PATCH /projects/:id rename / update style DELETE /projects/:id delete POST /projects/:id/scenes add scene PATCH /scenes/:id edit prompt / model / ref image / selected gen POST /projects/:id/scenes/reorder reorder scenes DELETE /scenes/:id remove POST /scenes/:id/generations enqueue generation (202) GET /scenes/:id/generations list history GET /generations/:id poll single POST /projects/:id/merge enqueue merge (202) GET /merges/:id poll merge GET /projects/:id/merges export history GET /uploads/reference-image presigned object URL POST /uploads/reference-image multipart upload (jpg/png/webp, ≤10MB) GET /music list tracks (built-in + user's) POST /music/upload upload audio DELETE /music/:id remove POST /generations/:id/captions enqueue Whisper transcription GET /generations/:id/captions list segments GET /usage today's quota per provider GET /analytics/summary per-day/per-provider counts GET /analytics/most-regenerated scenes with most attempts GET /analytics/spend-estimate per-provider $ WS /ws/jobs real-time job events (session-cookie auth) GET /admin/users list users (admin role) PATCH /admin/users/:id/role change role
Full schema in docs/API.md (auto-generated from Zod).
We welcome pull requests, bug reports, and feature ideas.
ClipForge is open source under the GNU Affero General Public License v3.0 (AGPL-3.0).
The AGPL was chosen deliberately: the platform is most useful when deployed as a network service, and the AGPL ensures that improvements made by anyone who runs a network service must be released back to the community. If you fork and modify ClipForge, you must publish your source under the same terms. See LICENSE for the full text and NOTICE for third-party acknowledgments.
For commercial licensing that doesn't require source publication (e.g., embedding ClipForge as a black-box component in a proprietary SaaS without sharing modifications), please contact licensing@techseria.com.
ClipForge and the ClipForge logo are trademarks of Techseria (https://techseria.com). Use of the name or logo in derivative works is welcome under the terms of the AGPL but should not suggest endorsement by Techseria.
Built with the support of the open-source community. See NOTICE for a full list of dependencies and their licenses.
Maintained by Techseria · 2026 If you found ClipForge useful, please ⭐ the repo and tell a colleague.
| Back | FazBrowse Home | New Git URL |