Iteration 1: the closing line overlapped the fourth endpoint chip — chip removed, end block moved to its own band below the chips; re-stilled clean and rendered (iteration 2).
Original promptTested
API launch video — Remotion prompt (typed code call + 200 OK card)
Banned list —Beat grid —Build method —Self-review —
<direction>
A 9-second API product launch film in Remotion (1280x720, 270 frames at 30fps). House style: near-black #0a0a0a background, panels #141414, borders #2a2a2a, text #ffffff/#c9c9c9, ONE accent #ff5c1a, Arial/Helvetica bold, no webfonts. A code window types a real-looking API call, a response card lands with a latency meter, and endpoint chips close the film. Fictional API; the code and numbers are set dressing and say so on screen. No gradients, no stock photos, no real brand logos, no lorem ipsum, no purple/blue tech gradient.
</direction>
<structure>
Frames 0-34 — Kicker "API LAUNCH FILM — RelayAPI". A terminal-styled window rises (dots, "terminal — your first call", a SEND pill in grey).
Frames 34-118 — The request types itself character by character: "POST /v1/send" line, then a short JSON body. Accent block caret at the typing edge.
Frames 124-154 — The SEND pill lights accent; the response card slides in right: "200 OK", "Message accepted", a latency bar filling to 84ms, and a small JSON receipt.
Frames 196-240 — Endpoint chips row in (three endpoints max), then the end block: "SHIP YOUR FIRST CALL TODAY" + the fictional fine print — placed BELOW the chips, never across them.
</structure>
<build>
One component; typing = slicing the code string by an interpolated character count per frame. All motion from useCurrentFrame + clamped interpolate. Monospace via Courier New stack (no webfonts). Keep the two windows the same height so the pair reads as one console.
</build>
<gotchas>
- Iteration 1 put the end line on the same baseline as a fourth endpoint chip and they overlapped — drop the fourth chip and move the end block to its own band (fixed in iteration 2).
- The latency bar percentage and the printed "84ms" must agree — derive both from one constant.
- Code samples must be generic (no real keys, no real domains — use .example).
</gotchas>
Before you finish: step through the timeline at five points and fix anything that overlaps, clips the frame, or drifts off the beat grid.
Tested after the layout fix (iteration 2). The typed-call + response-card pair is the whole genre in one pattern — reskin by changing the endpoint, body and receipt.