<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nidheeshdas Thavorath</title>
    <description>The latest articles on DEV Community by Nidheeshdas Thavorath (@nidheeshdas).</description>
    <link>https://dev.to/nidheeshdas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F361372%2F27ba8b14-53f7-48ff-8785-1fbe85d15e9d.jpeg</url>
      <title>DEV Community: Nidheeshdas Thavorath</title>
      <link>https://dev.to/nidheeshdas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nidheeshdas"/>
    <language>en</language>
    <item>
      <title>Why Your Coding Agent Should Write the Launch Video Too</title>
      <dc:creator>Nidheeshdas Thavorath</dc:creator>
      <pubDate>Wed, 09 Sep 2026 17:16:28 +0000</pubDate>
      <link>https://dev.to/nidheeshdas/why-your-coding-agent-should-write-the-launch-video-too-5fpb</link>
      <guid>https://dev.to/nidheeshdas/why-your-coding-agent-should-write-the-launch-video-too-5fpb</guid>
      <description>&lt;p&gt;Your agent just shipped a feature, opened the PR, and drafted the changelog.&lt;/p&gt;

&lt;p&gt;Then you opened CapCut.&lt;/p&gt;

&lt;p&gt;That gap — software that moves at agent speed, marketing video that still moves at timeline speed — is the wedge SceneRok is built around. We treat video the way modern teams already treat apps: as &lt;strong&gt;source code&lt;/strong&gt;. Agents author it. Generative models run as &lt;strong&gt;functions&lt;/strong&gt;. A &lt;strong&gt;deterministic compiler&lt;/strong&gt; produces something you can diff, fork, and reproduce.&lt;/p&gt;

&lt;p&gt;This post is for builders who live in Claude, Cursor, Aider, OpenCode, or Codex — and for creators and agencies tired of one-shot prompt boxes that can't enforce brand timing.&lt;/p&gt;




&lt;h3&gt;
  
  
  The problem isn't "AI video." It's structure.
&lt;/h3&gt;

&lt;p&gt;The last two years of generative video models are impressive. Grok Imagine, Veo, PixVerse, Runway, FLUX stills, ElevenLabs voice and music — you can get beautiful clips from a sentence.&lt;/p&gt;

&lt;p&gt;What you still can't get reliably from a single prompt is &lt;strong&gt;shipping video&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exact beat timing for a 15-second reel
&lt;/li&gt;
&lt;li&gt;Brand lockups that never drift
&lt;/li&gt;
&lt;li&gt;A founder VO that lands on the product shot, not three frames early
&lt;/li&gt;
&lt;li&gt;A template you can reuse next week when the offer changes
&lt;/li&gt;
&lt;li&gt;A file history that isn't &lt;code&gt;final_v7_reallyfinal.mp4&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prompt-first tools optimize for surprise. Product launches optimize for &lt;strong&gt;control&lt;/strong&gt;. Those are different jobs.&lt;/p&gt;

&lt;p&gt;If your coding agent can refactor a codebase from a brief, it should be able to author a launch reel from a brief too — without you scrubbing a timeline at midnight.&lt;/p&gt;




&lt;h3&gt;
  
  
  Video should be programmable
&lt;/h3&gt;

&lt;p&gt;"Programmable video" means the &lt;strong&gt;source of truth is code&lt;/strong&gt;, not a proprietary project file and not a chat transcript.&lt;/p&gt;

&lt;p&gt;In SceneRok that language is &lt;strong&gt;VidScript&lt;/strong&gt;. Intent becomes a readable script. At compile time, imported packages call frontier models as functions — assets resolve &lt;em&gt;before&lt;/em&gt; the timeline is rendered. The compiler then enforces timing, shaders, overlays, and audio mix. Same source, same inputs → reproducible output.&lt;/p&gt;

&lt;p&gt;The loop looks like software, because it is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Intent&lt;/strong&gt; — describe the video or hand your agent a brief. No blank timeline.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent authors VidScript&lt;/strong&gt; — templates, brand rules, parameterized slots.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generative plugins at compile&lt;/strong&gt; — &lt;code&gt;xai.imagine()&lt;/code&gt;, &lt;code&gt;cf.imagine()&lt;/code&gt;, &lt;code&gt;cf.image()&lt;/code&gt;, &lt;code&gt;xai.tts()&lt;/code&gt;, &lt;code&gt;eleven.music()&lt;/code&gt;, and any Cloudflare AI Gateway model via &lt;code&gt;model:&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic composition&lt;/strong&gt; — the compiler owns structure. You own taste and constraints.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can work three ways: web editor (creators and motion designers), CLI + MCP + skills (agent-first builders), or templates + version control (teams). Hybrid execution means local preview and GPU render from the same source. One token wallet covers traditional render and generative calls, with an audit trail.&lt;/p&gt;

&lt;p&gt;The slogan we keep coming back to: &lt;strong&gt;Agents don't prompt. They program.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  VidScript mental model
&lt;/h3&gt;

&lt;p&gt;Think of VidScript as a &lt;strong&gt;declarative timeline with real function calls&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Imports&lt;/strong&gt; pull in generative providers (&lt;code&gt;@scenerok/xai&lt;/code&gt;, &lt;code&gt;@scenerok/cloudflare&lt;/code&gt;, ElevenLabs music, motion helpers).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inputs&lt;/strong&gt; declare assets you already have (brand hero clip, logo, screen recording).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time ranges&lt;/strong&gt; like &lt;code&gt;[0s .. 6.5s]&lt;/code&gt; place video, text, and audio on a clock.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;[-]&lt;/code&gt;&lt;/strong&gt; means "generate / resolve this asset at compile time" — duration comes from the model call or context.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output&lt;/strong&gt; sets container, resolution, destination.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Generative calls are not a side chat. They are first-class expressions inside the script. That matters: the agent can change a prompt string, a &lt;code&gt;model:&lt;/code&gt; id, or a voice name the same way it changes a constant in TypeScript — and you still get a reviewable diff.&lt;/p&gt;

&lt;p&gt;For longer, data-driven, or heavily branched scenes, the TypeScript authoring SDK (&lt;code&gt;@scenerok/sdk&lt;/code&gt;) builds the same intermediate timeline IR. Short promos and human edits stay in &lt;code&gt;.vid&lt;/code&gt;. Agents that need loops and computed timing lean on the SDK. Both paths compile to the same place.&lt;/p&gt;

&lt;p&gt;Cloneable sources for videos on the public showcase live in &lt;a href="https://github.com/nidheeshdas/scenerok-showcase" rel="noopener noreferrer"&gt;nidheeshdas/scenerok-showcase&lt;/a&gt; — each folder is a brief, metadata, and &lt;code&gt;source.vid&lt;/code&gt; or &lt;code&gt;source.ts&lt;/code&gt; you can fork and re-render with the CLI.&lt;/p&gt;




&lt;h3&gt;
  
  
  Example: a tiny launch reel (from product docs)
&lt;/h3&gt;

&lt;p&gt;The following is adapted from the VidScript examples published on &lt;a href="https://scenerok.com" rel="noopener noreferrer"&gt;scenerok.com&lt;/a&gt; — not a one-off invention. It shows the shape: brand footage + compile-time generative video + TTS, composed deterministically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import cf from "@scenerok/cloudflare"
import xai from "@scenerok/xai"

input brand = "https://cdn.scenerok.com/samples/brand-hero.mp4"

# Generative assets created at compile time — pick any Cloudflare Gateway model
[-] = video cf.imagine(
  "minimal product shot, floating in void, soft rim light",
  model: "pixverse/v6",
  aspect_ratio: "9:16",
  duration: 6
)

[0s .. 6.5s]  = video brand
[0.8s .. 5.8s] = audio xai.tts(
  "This is not generated. This is compiled.",
  voice: "jessica"
)

output to "launch-reel.mp4", resolution: "1080x1920"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A second pattern — text-to-video plus timed type — looks like this (also from the site's mental model):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import xai from "@scenerok/xai"
import motion from "@scenerok/basic-animations"

[-] = video xai.imagine(
  "cyberpunk city at dusk, cinematic",
  aspect_ratio: "9:16",
  duration: 4.2
)

[2.8s .. 7s] = text "The future is compiled",
  style: title,
  animate: motion.fadeIn(0.6s)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice what is &lt;em&gt;not&lt;/em&gt; happening: you are not pasting a mega-prompt and hoping the model invents your brand system. The model fills &lt;strong&gt;slots&lt;/strong&gt;. The script owns &lt;strong&gt;structure&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Cloudflare's plugin is the "one plugin, many providers" path — PixVerse, Veo, Seedance, Runway, FLUX, Grok Imagine via gateway billing, and more — selectable with &lt;code&gt;model:&lt;/code&gt; or inspectable at compile time with &lt;code&gt;cf.listModels()&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Templates with teeth
&lt;/h3&gt;

&lt;p&gt;One-shot generators fade when you need campaign volume. SceneRok leans on &lt;strong&gt;parameterized templates&lt;/strong&gt;: Product Launch, Founder Testimonial, UGC Remix, Motion Campaign. Slots like &lt;code&gt;{{hero}}&lt;/code&gt;, &lt;code&gt;{{offer}}&lt;/code&gt;, &lt;code&gt;{{cta_voice}}&lt;/code&gt; can be filled by humans, data, or generative calls — while brand rules, timing, and type systems stay enforced.&lt;/p&gt;

&lt;p&gt;That is the agency and growth-team unlock. Fork last week's reel, swap the offer string and hero asset, recompile. Version control becomes the edit history. Review happens on a PR, not a Loom of someone scrubbing a timeline.&lt;/p&gt;




&lt;h3&gt;
  
  
  Who this is for
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Indie founders and coding-agent users&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You already ship with agents. You still under-ship video because CapCut doesn't live in your IDE. Install the SceneRok CLI and skills once; stay in Claude, Cursor, Aider, or Codex. Tell the agent what to build; it writes and renders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Novice creators&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You want production-grade starting points without learning After Effects. Web editor first, system templates, real-time preview — drop into VidScript only when you need precision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agencies and small motion teams&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You need reuse, brand guardrails, and client variants without rebuilding from zero. Templates + unified billing + audit trail beat a folder of untitled projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not the first wedge&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
If you only need a single surreal clip for fun, a consumer prompt app is fine. SceneRok is for people who need the &lt;strong&gt;fifteenth&lt;/strong&gt; variant to still match the brand.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why "deterministic" matters when models are stochastic
&lt;/h3&gt;

&lt;p&gt;Generative calls are stochastic by nature. Composition should not be.&lt;/p&gt;

&lt;p&gt;SceneRok's bet is hybrid: resolve generative assets at compile time (logged against your wallet), then compose with a compiler that respects explicit timing and effects. You can change a model prompt without rewriting your entire edit. You can re-render with the same script after swapping one input. You can preview locally and push final frames to GPU targets without forking the creative.&lt;/p&gt;

&lt;p&gt;That is closer to how CI treats builds than how chat treats images. Builders already trust that mental model.&lt;/p&gt;




&lt;h3&gt;
  
  
  Getting started (soft CTA)
&lt;/h3&gt;

&lt;p&gt;If the asymmetry bothers you — agents shipping code while humans hand-cut launch videos — try SceneRok:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Site and web editor: &lt;a href="https://scenerok.com" rel="noopener noreferrer"&gt;https://scenerok.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Agent path: CLI + MCP + skills (Claude, Cursor, Aider, OpenCode, Codex)
&lt;/li&gt;
&lt;li&gt;Public examples: &lt;a href="https://github.com/nidheeshdas/scenerok-showcase" rel="noopener noreferrer"&gt;github.com/nidheeshdas/scenerok-showcase&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Showcase templates: &lt;a href="https://scenerok.com/showcase" rel="noopener noreferrer"&gt;scenerok.com/showcase&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fork a showcase folder, change a line, render a variant. Or open the editor and start from a Product Launch template.&lt;/p&gt;

&lt;p&gt;I'm building this in the open for the people who already treat software as code and are ready to treat &lt;strong&gt;video&lt;/strong&gt; the same way.&lt;/p&gt;

&lt;p&gt;— Nidheeshdas Thavorath (@nidheeshdas_)&lt;br&gt;&lt;br&gt;
SceneRok · &lt;a href="https://scenerok.com" rel="noopener noreferrer"&gt;scenerok.com&lt;/a&gt;&lt;/p&gt;




</description>
      <category>ai</category>
      <category>video</category>
      <category>devtools</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
