Full-stack dev · AI builder · Est. 2017
EDRA GREY
Tutorials | EN · ES · PT | Lisbon / Madrid / Florianópolis
Free 30-min consult. No slides, no deck-ware Q3 / 2026 · 02 slots remaining Lisbon · Madrid · Florianópolis · remote-friendly Working in EN · ES · PT Six-week shipping cadence AI used as a tool, never as a pitch
Free 30-min consult. No slides, no deck-ware Q3 / 2026 · 02 slots remaining Lisbon · Madrid · Florianópolis · remote-friendly Working in EN · ES · PT Six-week shipping cadence AI used as a tool, never as a pitch
Free 30-min consult. No slides, no deck-ware Q3 / 2026 · 02 slots remaining Lisbon · Madrid · Florianópolis · remote-friendly Working in EN · ES · PT Six-week shipping cadence AI used as a tool, never as a pitch
Free 30-min consult. No slides, no deck-ware Q3 / 2026 · 02 slots remaining Lisbon · Madrid · Florianópolis · remote-friendly Working in EN · ES · PT Six-week shipping cadence AI used as a tool, never as a pitch
← Tutorials
AI VIDEO · VIBE CODING · JUN 2026 · 7 MIN

I Built a SaaS Video Ad in 30 Minutes With AI

No editing timeline. No stock footage. The whole ad was scripted and rendered as code. Here is the exact workflow, start to finish.

For
builders who want video without an editing app
Needs
Node, a terminal, and ffmpeg
Time
about 30 minutes
The finished 30-second spot. 9:16, 1080×1920, built for paid social.

I needed a direct-response video ad for a SaaS product: vertical, thirty seconds, the kind of thing that runs on Meta and TikTok and has to earn attention in the first second. The usual path is a video editor and a few hours in a timeline. I did it a different way, treating the video as code, and it took about half an hour. Here is how.

1. Start with the structure, not the visuals

A performance ad is not a brand film. It follows a shape that sells: problem, agitation, reveal, payoff. Before touching any design I wrote the beats out in plain language.

If the structure is wrong, no amount of motion design saves it. Getting this right on paper first is most of the work.

2. Steal the brand, do not invent it

The product already had a design spec, so I pulled the real values straight from it: the exact background, the action color, the typefaces, the corner radius. An ad that uses the product's real palette looks like the product. One that uses invented colors looks like a knockoff. This is a thirty-second job, so I spent zero of those seconds guessing at hex codes.

3. Build the video as code

Instead of an editing app I used HyperFrames, which treats an HTML file as the source of truth for a video. Layout is CSS, motion is a GSAP timeline, and timing lives in data attributes. The whole thing renders to an MP4 from the command line. I described the five scenes to Claude, it wrote the composition, and I iterated on the timing in plain English ("hold the profit number longer", "punch the hook in faster").

The payoff of code-as-video is that everything is exact and repeatable. The profit figure counts up on a curve I control. The bars stagger in on a rhythm I set. Change one number and re-render, no scrubbing a playhead.

The product-reveal scene: an on-brand dashboard with a profit figure counting up.
The reveal scene. The dashboard is a CSS mock built in the product's real brand, not a screenshot.

4. Fake the product, cleanly

The app sits behind a login, so a raw screen recording was not an option. I built the dashboard as a small block of HTML and CSS instead, using the real brand tokens. A built mock is sharper than a screenshot anyway: no cursor, no stray browser chrome, every number chosen to make the point.

5. Render, then read the frames

Rendering a thirty-second vertical took under a minute. Then I pulled single frames at the key moments to check them like stills: is the hook readable, does the dashboard hold up, is the call to action obvious. The contrast checker flagged some warnings, but a frame-by-frame look showed they were false positives from the crossfades. The frames are the truth, not the linter.

The closing call-to-action scene with the product name and URL.
The close. One instruction, one URL, held long enough to land.

What I used

The takeaway

Treating a video as code collapses the gap between an idea and a finished cut. The skill that matters is not the editing software, it is knowing the structure that makes an ad work and being able to direct the tools to build it. The ad above is a spec piece, but the workflow is the real product: once it exists, the next variation is a five-minute change and a re-render.

BUILT BY EDRA

I build websites, automations, and AI tools, and ship in weeks what used to take quarters.

See the studio ↗