P-04 · BUILD / PROJECT · 2026 PROTOTYPE

ReelForge

A node-graph editor for 9:16 video, with a human approval gate after every generative step.

STACK: Next.jsReact FlowSQLiteffmpegComfyUI

What it is

ReelForge is a ComfyUI-style node board for producing vertical social video. You build a chain (Idea, Script, Image keyframes, video generation, Captions, Export) and run it. The rule that shapes everything else: nothing auto-cascades. Every generative node ends in needs_review, and a human has to approve before the next node is allowed to consume its output. Generation is cheap. Taste is not, and taste is mine.

Node board with the chain wired together, Idea to Social Export

How it works

The canvas is React Flow, but the canvas is deliberately not the engine. Each node type exposes a plan() function that compiles its config plus its upstream inputs into JobSpecs. The UI produces work orders; something else does the work. That decoupling is what let me change execution three times without touching the board.

Jobs land in a durable queue in SQLite, drained by a separate worker process. Claims are atomic, workers heartbeat, and a sweeper reclaims jobs abandoned by a crashed worker. Progress reaches the browser over Server-Sent Events, never polling. There is an ADR in the repository arguing that decision out, because “we’ll just poll every two seconds” sounds free right up until you have a hundred nodes on a board.

Providers are arranged in fallback tiers: hosted APIs first, a local ComfyUI GPU tier behind them. Each tier carries circuit-breaker health, surfaced in settings so you can see which one is actually serving you. Fallbacks never fail silently. A demotion is visible, because silently cheaper output is the worst failure mode a creative tool has.

All of that surfaces on a boards dashboard: a review queue and a live activity feed, so the queue is never a black box.

Boards dashboard, review queue and live activity feed

Details I’m proud of

Provenance is complete. Every asset records the node that produced it, the prompt, the model, the provider, the parameters, and its parent assets. You can always answer “where did this frame come from”.

Character Studio handles recurring characters: assemble a canon reference set, auto-caption a dataset of 15 to 50 images, generate a LoRA training config, and train it locally on a 12-16GB GPU. Consistency becomes a trained artefact rather than a prompt you keep retyping.

Assets are content-addressed by SHA-256 with WebP thumbnails, and export runs through ffmpeg: crossfades, caption burn-in, loudness normalisation, 1080×1920 out.

Where it stands

Roughly 44,000 lines, built in a week of orchestrated agent work. A prototype: the architecture is settled, the taste layer is still being tuned.