Project

Contributing

Building on the codebase? This page is for you. Shipping videos via the public API? Start at the Introduction.

Before you start

  • Open or claim an issue before large changes.
  • One problem per PR. Small diffs get merged faster.
  • Never commit .env or real API keys.

Repo layout

tree
manim-vid/
  client/          # Next.js — UI, docs, settings, Better Auth, Prisma
  main.py          # FastAPI video worker (VPS)
  worker.py        # generation pipeline
  prompts/         # live LLM prompts
  remotion-src/    # Remotion compositions
  schema/          # Pydantic models (VideoRequest, etc.)

Web and worker are separate deploys. Vercel Root Directory = client. Python stays on a GPU/CPU box that can render.

Web app (client/)

setup
cd client
bun install
cp .env.example .env
bunx prisma generate && bunx prisma db push
bun run dev
  • Docs: app/docs/
  • Prisma: prisma/schema.prisma
  • Deploy notes: client/DEPLOY.md

Video worker

worker
uv sync
uv run uvicorn main:app --host 0.0.0.0 --port 8000
# client/.env → NEXT_PUBLIC_CHALKBOARD_API_URL=http://127.0.0.1:8000

Pull requests

  • Say what broke and how you tested (UI path or curl).
  • Match existing style — no drive-by renames.
  • Prisma changes → run db push and mention it in the PR.

Don’ts

  • Don’t paste real secrets into docs examples.
  • Don’t couple Next to local Python paths for production.
  • Don’t expand docs into marketing fluff — keep them useful.