Launch video pipeline
Proof
Proof reads a GitHub repo, finds a story worth telling and turns it into a script you can record from a teleprompter. It then cuts the take, adds captions and motion graphics, and exports a vertical video.
Proof checks three frames from every generated scene. If text clips, copy breaks or a graphic covers the speaker, it patches that scene and renders it again.
- Rendered output: A finished 61-second output with timed captions and graphics kept clear of the face.
- Product walkthrough: The walkthrough shows repository analysis, the generated brief and the guided recording flow.
- 1st Runner-Up: Proof placed 1st Runner-Up at 'Sup Build2026 among more than 300 builders.
- Render pipeline: Repository research, recording, Whisper timing, graphics and vision review stay as inspectable stages.
What it does
Proof reads a GitHub repo, finds a story worth telling and turns it into a script you can record from a teleprompter. It then cuts the take, adds captions and motion graphics, and exports a vertical video.
The result
Proof placed 1st Runner-Up at 'Sup Build2026 among more than 300 builders, with S$5K+ in prizes. The product now runs as an invite-only beta at tryproof.org.
How it avoids generic scripts
Proof does not ask a model for one "viral" script. It creates several different angles, then scores them against evidence from the repository and the founder's answers. The scoring prompt tells the model not to invent numbers before an angle reaches the teleprompter.
The system boundary I built
I built the render service. I also found two security holes in my first version: one let a job fetch unsafe URLs (SSRF), and another could expose another user's render (IDOR). I closed both, put the worker behind token authentication and added row-level security rules so users only see their own jobs.
Jobs are queued, persisted and resumed instead of living inside a browser request. Each attempt is kept so a failed render can be inspected instead of disappearing into a retry.
How the video checks itself
A generated scene does not ship just because its HTML rendered. Proof samples three frames and checks for clipped text, broken copy or graphics over the speaker. If it finds a problem, it patches the same scene and tries again. In the production fixture, it rejected two bad versions before approving the repair.
What broke
Two renders at once finished about 20% faster per video because one could use the worker while the other waited on transcription or upload. A third exhausted memory, so Proof runs two and queues the rest.
Whisper's word timestamps tell the renderer where to cut dead air and place each caption. The measured render time moved from 34.4 seconds to 27.6 seconds without changing the model.