Launch videos built like software
Real product screens, a voice timed to the word and a soundtrack mixed to broadcast level. How I make the launch video for every product I ship.



Every product I ship gets a launch video. Not a screen recording with music on top, but a short, edited advert: real screens, a voiceover, motion that lands on the beat and a clear call to action.
I build these videos the same way I build software. Every scene is code, every timing lives in one file, and the whole video renders from a single command. That means it can be versioned, reviewed and changed in minutes instead of days.
This is the process behind the BelleFood, Emmatos Gym and Zenthos Gym videos.
Agree the story before anything moves
The script comes first. A pitch to one client speaks to the owner: “your customers”, “this is your new app”. A public advert speaks to every business of that type: “Own a gym?”. Both follow the same shape:
- the problem the business feels every day
- “Imagine…”
- the product by name
- its five or six strongest features, one line each
- the line about money
- a clear call to action
Nothing is animated until the script, the voice and the music are agreed. Changing one sentence after the motion is built means re-timing everything after it.
Only real screens
Every phone in the video shows the real product. An automated browser signs in with the demo accounts and captures each screen at iPhone size, in the product’s own dark mode, with private details removed first.
If a screen is not good enough to appear in the video, that is a bug in the product, not in the video. The video becomes one more round of quality checks.
Timed to the word
The voice is recorded on its own. I measure the start time of every word and check the recording against the script line by line, so nothing is skipped or misread.
Those times go into one file, and every visual hangs off them:
export const T = {
hook: 0.28,
imagine: 8.1,
name: 14.02,
door: 15.97,
scan: 16.35,
granted: 16.95,
}
When the voice says “scan”, the phone scans. If a sentence is re-recorded, I update the numbers and the whole video follows.
Built on the beat
I measure the music’s tempo and find its drop, then offset the track so the drop lands exactly on the line that names the product. From there, scene changes sit on bar lines the voice is already leaning on, so the video feels edited rather than assembled.
Every frame is a function of time
Nothing animates on its own. Each frame is drawn from the current time, so the same moment always looks the same. Elements spring in, headlines rise out of a mask, and scenes change with a flood of colour that grows from the previous shot instead of a crossfade.
const t = frame / fps
const pop = springAt(t, T.scan, 14, 170) // damping, stiffness
Because any moment can be drawn on its own, I export still frames at every key timestamp before the full render and check them for clipping, overlaps and single-frame glitches.
Sound is half the video
The soundtrack is built by a script, not by hand:
- the product’s own sounds, such as the order alert or the check-in chime, placed where they happen on screen
- whooshes and impacts placed on each sound’s measured peak, not by eye
- the music lowered automatically whenever the voice speaks, so every word stays clear
- a final loudness pass to −14 LUFS with a −1 dB peak, the level social platforms play at
'[music][voiceKey]sidechaincompress=threshold=0.015:ratio=10:attack=10:release=260[musicDucked]'
The ending
The best videos end on a moment, not a logo slide. Mine go dark out of the phone’s camera island, the ZenthosLab mark lands with a single sweep of light, the beat stops for a breath, and the product’s real alert sounds in the silence. Then the call to action holds long enough to read the number.
What I took from it
- Treat video like software. A script, a timeline file and a build command beat a project file only one person can open.
- Use the product itself as the footage. It keeps the video honest and catches bugs.
- Time everything to something measurable: words, beats and peaks, not guesses.
- Review with your eyes and your ears. I always watch the final cut on a phone with sound before calling it done.