<?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: M Habib ur Rehman </title>
    <description>The latest articles on DEV Community by M Habib ur Rehman  (@legerise).</description>
    <link>https://dev.to/legerise</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%2F4119771%2F5e1005df-3933-495e-ab49-d87f60ceb279.jpg</url>
      <title>DEV Community: M Habib ur Rehman </title>
      <link>https://dev.to/legerise</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/legerise"/>
    <language>en</language>
    <item>
      <title>HyperFrames — Blackbox in a Whitebox</title>
      <dc:creator>M Habib ur Rehman </dc:creator>
      <pubDate>Thu, 10 Sep 2026 20:10:23 +0000</pubDate>
      <link>https://dev.to/legerise/hyperframes-blackbox-in-a-whitebox-2d41</link>
      <guid>https://dev.to/legerise/hyperframes-blackbox-in-a-whitebox-2d41</guid>
      <description>&lt;p&gt;For the last few days, I've been trying to build a simple video editor for my own use case. And honestly, the rendering wasn't the problem — the export wasn't either.&lt;/p&gt;

&lt;p&gt;It was the timeline. The playhead. The clip bars. The drag. Split. Resize. Track layering. The scrub loop that has to stay in sync with the preview while the user drags something. All of it — I was forced to write myself.&lt;/p&gt;

&lt;p&gt;And it was a headache. A real one. &lt;/p&gt;

&lt;p&gt;I started looking for something that could handle these common issues for me — and that's when I found something super interesting: HyperFrames.&lt;/p&gt;




&lt;h2&gt;
  
  
  And then I watched every tutorial on it
&lt;/h2&gt;

&lt;p&gt;Every article. Every YouTube video. Every thread. And everyone explained it the same way.&lt;/p&gt;

&lt;p&gt;"It's just an HTML file."&lt;/p&gt;

&lt;p&gt;"Your video is just an HTML file."&lt;/p&gt;

&lt;p&gt;"Use HyperFrames in the back and it renders."&lt;/p&gt;

&lt;p&gt;Cool. Great. Very clear.&lt;/p&gt;

&lt;p&gt;And then — without fail — every single one of them would bring in Claude Code. Or GPT Codex. Or some other AI agent. And they'd say: tell the AI to build a video following this prompt. And the AI would build it. And the best part is, it actually would. But that was it. That was the tutorial.&lt;/p&gt;

&lt;p&gt;And I sat there thinking... okay, but &lt;em&gt;what actually happened?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That was a &lt;strong&gt;blackbox&lt;/strong&gt; to me.&lt;/p&gt;

&lt;p&gt;Even though, everyone kept saying "&lt;strong&gt;nothing is a blackbox, everything is in front of you, it's just HTML, it's open source, you can read it.&lt;/strong&gt;" And yeah. Technically true. But I couldn't see how it worked. I could see the inputs. I could see the outputs. I could not see the middle.&lt;/p&gt;

&lt;p&gt;And then, somewhere in the middle of exploring things here and there, a thought hit me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if this handles all the behind-the-scenes for me?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What if I don't have to write the timeline. The playhead. The scrub loop. The clip model. What if HyperFrames already solved all of that, and I just build my own UI on top of it?&lt;/p&gt;

&lt;p&gt;That thought is why I'm writing this article.&lt;/p&gt;




&lt;h2&gt;
  
  
  So what is HyperFrames, really?
&lt;/h2&gt;

&lt;p&gt;Let me put it in the simplest way I can, for someone who's never touched it.&lt;/p&gt;

&lt;p&gt;HyperFrames — an AI agent framework — turns HTML into video.&lt;/p&gt;

&lt;p&gt;That's it. That's the pitch. You tell the AI what you want, it writes the HTML, you press render, and you get an MP4.&lt;/p&gt;

&lt;p&gt;Sounds too simple to be useful, right? Stay with me, because the simplicity is the whole point.&lt;/p&gt;

&lt;p&gt;Think about it. Animation, transitions, text flying in, images sliding, colors fading — all of this already exists on the web. It's called HTML, CSS, and JavaScript. Every website you've ever visited uses it. And every AI you've ever talked to can write it.&lt;/p&gt;

&lt;p&gt;So I asked myself: if the browser can already do all of this, why do we need a separate tool to make videos?&lt;/p&gt;

&lt;p&gt;The answer: we don't. We just need to teach the browser to hand over the frames one at a time.&lt;/p&gt;

&lt;p&gt;That's what HyperFrames does. It opens your HTML in a headless browser, moves a playhead through time frame by frame, takes a screenshot at every step, and stitches them together into a video.&lt;/p&gt;

&lt;p&gt;Simple.&lt;/p&gt;

&lt;p&gt;But that's not where the story ends. That's actually where the interesting part begins.&lt;/p&gt;




&lt;h2&gt;
  
  
  The question that I believe every tutorial was missing
&lt;/h2&gt;

&lt;p&gt;So we or an AI can write any animation in HTML and that becomes a video, right?&lt;/p&gt;

&lt;p&gt;but then why?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does that HTML only work with HyperFrames' video editor studio? Why won't it magically work with any famous editors like CapCut or so?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why do we rely on HyperFrames to have a Studio — their version of CapCut — which knows exactly what to do with the HTML you wrote?&lt;/p&gt;

&lt;p&gt;Why can't you just take any random HTML animation and drop it into any random video editor and have it work?&lt;/p&gt;

&lt;p&gt;Because it won't. It can't. And that's the answer I was missing for the past week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Because they did two things, not one
&lt;/h2&gt;

&lt;p&gt;Here's what I missed at first, and I think most did too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HyperFrames&lt;/strong&gt; didn't just say to the AI &lt;strong&gt;&lt;em&gt;"write a video in HTML, do whatever you want."&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because if they had, every AI would write the same scene differently. And that's the whole problem.&lt;/p&gt;

&lt;p&gt;Think about it. You open Claude and you say: &lt;strong&gt;&lt;em&gt;"Make a 5-second scene where the title fades in and slides up."&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It gives you something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"scene"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Hello World&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
  &lt;span class="nf"&gt;#title&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;animation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;fadeIn&lt;/span&gt; &lt;span class="m"&gt;0.8s&lt;/span&gt; &lt;span class="n"&gt;ease&lt;/span&gt; &lt;span class="n"&gt;forwards&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;@keyframes&lt;/span&gt; &lt;span class="n"&gt;fadeIn&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nt"&gt;to&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;translateY&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clean. Works in a browser. Perfectly fine.&lt;/p&gt;

&lt;p&gt;Now you open ChatGPT and ask the exact same thing. And it gives you this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"scene"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Hello World&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;el&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;title&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;opacity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;transition&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;opacity 0.8s&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;opacity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also clean. Also works in a browser. Also perfectly fine.&lt;/p&gt;

&lt;p&gt;Now you open Gemini. Same prompt. And you get a third thing — maybe a GSAP timeline. Maybe a Web Animations API call. Maybe inline styles being toggled. Every AI, its own way. Every time, a different file.&lt;/p&gt;

&lt;p&gt;All three look like videos. None of them are video projects.&lt;/p&gt;

&lt;p&gt;Because now try to open any of those in a video editor. Try to drag that title clip on a timeline. Try to change its duration by dragging the edge. Try to split it. Try to know where it starts and where it ends without reading the code line by line.&lt;/p&gt;

&lt;p&gt;You can't.&lt;/p&gt;

&lt;p&gt;And that's the real problem. Not that AI writes bad HTML. AI writes great HTML. The problem is that AI writes &lt;em&gt;a different shape every *&lt;/em&gt;&lt;em&gt;single&lt;/em&gt;** time.* There's no agreement. There's no contract. Every video-shaped HTML file is its own little island, and no editor can dock at any of them. and that is what the real problem was.&lt;/p&gt;

&lt;p&gt;And to address this, &lt;strong&gt;HyperFrames&lt;/strong&gt; did the two things that actually matter. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, they wrote SKILLS files.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Skills files are basically instruction manuals for the AI. They spell out exactly how to write a video in HTML if you want it to be a real, editable, renderable project.&lt;/p&gt;

&lt;p&gt;Not "do whatever you want." Not "make it look nice." They said things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;data-start&lt;/code&gt; and &lt;code&gt;data-duration&lt;/code&gt; for every element's timing&lt;/li&gt;
&lt;li&gt;Register your animation on &lt;code&gt;window.__timelines[composition-id]&lt;/code&gt;, not somewhere else&lt;/li&gt;
&lt;li&gt;Always use the &lt;code&gt;.clip&lt;/code&gt; class convention for timed elements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A bunch of rules. That's it. And if you follow them — all of them — your HTML stops being a webpage and becomes a proper video project.&lt;/p&gt;

&lt;p&gt;That's the first half of the trick. The input side. It's how you make sure the AI's output is &lt;strong&gt;&lt;em&gt;always&lt;/em&gt;&lt;/strong&gt; in the right shape — the same shape, every time, no matter which AI you use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second, they built the Studio.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now here's the part that makes the whole thing click.&lt;/p&gt;

&lt;p&gt;Studio is HyperFrames' visual editor. Their version of &lt;strong&gt;&lt;em&gt;CapCut&lt;/em&gt;&lt;/strong&gt;. It looks like a normal editor — timeline, playhead, clip bars, drag, split, resize.&lt;/p&gt;

&lt;p&gt;But the reason Studio works at all is because it knows the &lt;strong&gt;&lt;em&gt;exact language&lt;/em&gt;&lt;/strong&gt; the &lt;strong&gt;SKILLS&lt;/strong&gt; files told the &lt;strong&gt;AI&lt;/strong&gt; to write in.&lt;/p&gt;

&lt;p&gt;When Studio opens your HTML, it doesn't guess. It looks for &lt;code&gt;data-composition-id&lt;/code&gt; on the root. It looks for &lt;code&gt;data-start&lt;/code&gt; and &lt;code&gt;data-duration&lt;/code&gt; on every element. It looks for &lt;code&gt;window.__timelines&lt;/code&gt; to find the animation. It knows the half-open visibility rule. It knows the track system.&lt;/p&gt;

&lt;p&gt;And once it has all of that, it renders your HTML file as a full visual project.&lt;/p&gt;

&lt;p&gt;Every scene, every clip, every track, every timing — all of it shows up as a real timeline you can edit.&lt;/p&gt;

&lt;p&gt;And once you're at that point? &lt;strong&gt;It's just a normal video editor.&lt;/strong&gt; Split. Resize. Drag. Rearrange. Overlay audio. Add transitions. Every basic editing feature works, because under the hood it's just editing a timeline model that was built from the HTML.&lt;/p&gt;

&lt;p&gt;So the two halves fit together perfectly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The SKILLS files&lt;/strong&gt; teach the &lt;strong&gt;AI&lt;/strong&gt; exactly what to &lt;strong&gt;write&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Studio&lt;/strong&gt; reads exactly what the &lt;strong&gt;SKILLS files teach&lt;/strong&gt; the &lt;strong&gt;AI&lt;/strong&gt; to write.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They designed both sides of the bridge to match. And that's what makes the whole thing work.&lt;/p&gt;

&lt;p&gt;That's the insight. That's the thing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let me show you what I mean
&lt;/h2&gt;

&lt;p&gt;Let's say you open any AI coding tool — Claude, GPT, Gemini, whatever — and you say:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;"Put a 5-second animation on this clip. Text fades in, slides up, and fades out."&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As I just showed you, you'll get three different answers. All of them work in a browser. None of them are a video project.&lt;/p&gt;

&lt;p&gt;Now ask the same thing, but with the HyperFrames skills files in place.&lt;/p&gt;

&lt;p&gt;It doesn't do whatever it wants. It doesn't guess. It always gives you the same shape, because the skills files told it exactly what shape to use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"root"&lt;/span&gt;
     &lt;span class="na"&gt;data-composition-id=&lt;/span&gt;&lt;span class="s"&gt;"main"&lt;/span&gt;
     &lt;span class="na"&gt;data-width=&lt;/span&gt;&lt;span class="s"&gt;"1920"&lt;/span&gt;
     &lt;span class="na"&gt;data-height=&lt;/span&gt;&lt;span class="s"&gt;"1080"&lt;/span&gt;
     &lt;span class="na"&gt;data-duration=&lt;/span&gt;&lt;span class="s"&gt;"5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"clip"&lt;/span&gt; &lt;span class="na"&gt;data-start=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt; &lt;span class="na"&gt;data-duration=&lt;/span&gt;&lt;span class="s"&gt;"5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello World&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;timeline&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;paused&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="nx"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;h1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;h1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;__timelines&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;main&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same prompt. But every AI, every time, produces this structure. Because the skills files removed the guessing.&lt;/p&gt;

&lt;p&gt;That's a real, complete, renderable video. Five seconds long.&lt;/p&gt;

&lt;p&gt;And here's the beautiful part — &lt;strong&gt;that exact HTML can now be opened in HyperFrames Studio and edited visually.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can scrub through it. You can drag the clip around on the timeline. You can split it. You can duplicate it. You can add another clip after it. You can change the duration by dragging the edge. All the things you'd do in CapCut, you can do with this HTML.&lt;/p&gt;

&lt;p&gt;Not because the HTML is magic. Because the HTML &lt;strong&gt;follows&lt;/strong&gt; the &lt;strong&gt;rules&lt;/strong&gt;, and the &lt;strong&gt;Studio&lt;/strong&gt; knows the &lt;strong&gt;rules&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's what I mean when I say HyperFrames didn't build magical HTML. They built the rules, they taught the AI the rules, and they built an editor that speaks the rules.&lt;/p&gt;

&lt;p&gt;The magic isn't in the code. It's in the &lt;strong&gt;agreement&lt;/strong&gt; between the two sides.&lt;/p&gt;




&lt;h2&gt;
  
  
  And this is when it hit me
&lt;/h2&gt;

&lt;p&gt;Building a visual video editor used to mean solving five hard problems.&lt;/p&gt;

&lt;p&gt;What's the project file format? How do you represent clips and timing and layers? How do you render it? How do you build the editor UI — timeline, playhead, drag, split, resize? And how do you exchange projects with anything else?&lt;/p&gt;

&lt;p&gt;The first three are the ones that kill you. They take months. They require decisions you can't undo.&lt;/p&gt;

&lt;p&gt;HyperFrames solved all three by fiat and documented the answer.&lt;/p&gt;

&lt;p&gt;And once you see that — once you realize the format is just HTML, following some simple rules, and the AI can already write it, and the editor already knows how to read it — the whole thing flips. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can now build your own mini editor.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not from scratch. Not in six months. Not even in six weeks.&lt;/p&gt;

&lt;p&gt;Because the hard problems were already solved — by the &lt;strong&gt;Standard&lt;/strong&gt; the &lt;strong&gt;SKILLs&lt;/strong&gt; files introduced.&lt;/p&gt;

&lt;p&gt;So now it's just a question of how you want to plug in.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You can take any editor that already handles the timeline, the playhead, the drag, the split — and write one parser on top of it that reads the HyperFrames standard. That's the whole job.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can fork Studio and reskin it. They already built the parser. They already built the timeline model. They already built the scrub loop.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Or&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;you can sit down and write your own parser from scratch, and then everything else — resize, drag, split, effects, audio overlay — is just normal editor work you'd be doing anyway.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Three routes. One outcome. And none of them require you to solve the same five problems every editor before you had to solve.&lt;/p&gt;

&lt;p&gt;Because that was the headache I was trying to escape. The timeline. The playhead. The scrub loop. The clip model. All of it. HyperFrames already wrote it.&lt;/p&gt;

&lt;p&gt;I just have to plug in.&lt;/p&gt;




&lt;h2&gt;
  
  
  The thing I keep coming back to
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Standards&lt;/strong&gt; sound boring. They sound like paperwork. But they're actually the most powerful thing in technology.&lt;/p&gt;

&lt;p&gt;Think about how we used to have a different charger for every phone. Then USB-C came along. Now one cable charges your laptop, your phone, your headphones.&lt;/p&gt;

&lt;p&gt;Or a more recent one — &lt;strong&gt;MCP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Before MCP, every AI app wrote its own way to get the weather. Its own way to read the news. Its own way to send an email. If you wanted your tool to work with Claude, you built one thing. If you wanted it to work with GPT, you built another. If you wanted it to work with Gemini, another.&lt;/p&gt;

&lt;p&gt;Then &lt;strong&gt;MCP&lt;/strong&gt; came along. One protocol. One format. And now any tool that speaks MCP works with any agent that supports MCP — Claude, GPT, Gemini, whoever comes next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Standards do that. They turn messes into ecosystems.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After a standard exists, everything connects. Anyone can build on top. Nobody has to build from underneath anymore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HyperFrames&lt;/strong&gt; is doing that for video. A small contract — A bunch of rules — and suddenly the whole game changes.&lt;/p&gt;

&lt;p&gt;But the part I want you to remember is the pair. &lt;strong&gt;The SKILLs files&lt;/strong&gt; &lt;em&gt;and&lt;/em&gt; &lt;strong&gt;the Studio&lt;/strong&gt;. The instruction &lt;em&gt;and&lt;/em&gt; the editor that reads exactly those instructions. That's the two-sided trick. That's why it works when nobody else's does.&lt;/p&gt;

&lt;p&gt;And the twist that makes it urgent rather than just neat — in a world where AI is going to write most of our video content, the format AI can write is the format that wins.&lt;/p&gt;

&lt;p&gt;AI already writes HTML. Fluently. Every day.&lt;/p&gt;

&lt;p&gt;So if the video format is HTML, and the AI has instructions to write it correctly, and an editor exists that reads exactly what the AI was told to write —&lt;/p&gt;

&lt;p&gt;Then the AI's output &lt;em&gt;is&lt;/em&gt; the video project. Ready to edit. Ready to render. Ready to ship.&lt;/p&gt;

&lt;p&gt;That's not a feature. That's the future.&lt;/p&gt;




&lt;h2&gt;
  
  
  A note before I go
&lt;/h2&gt;

&lt;p&gt;I'm writing this because I struggled.&lt;/p&gt;

&lt;p&gt;I spent the past week staring at videos, reading documentation, watching people do it on YouTube — and every time, they'd say "it's just HTML, it's easy, you just ask the AI" and move on. And I kept thinking, okay, but &lt;em&gt;how&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;And I think maybe some of you have felt the same. You see people use something magical, everyone tells you it's simple, and somehow you still can't see how the trick works.&lt;/p&gt;

&lt;p&gt;And honestly, maybe this blackbox was never a blackbox at all.&lt;/p&gt;

&lt;p&gt;Maybe it was obvious from everything that had been handed to me all along.&lt;/p&gt;

&lt;p&gt;Maybe I just didn't see it.&lt;/p&gt;

&lt;p&gt;But I felt the pain. So I shared the cure.&lt;/p&gt;

&lt;p&gt;If you've been through the same struggle with HyperFrames, or Remotion, or anything else — doesn't have to be a video tool — I'd love to hear about it. And if you find anything wrong in this article, please point it out. I'd be thankful for the generosity.&lt;/p&gt;

&lt;p&gt;Thanks for being here.&lt;/p&gt;

&lt;p&gt;Stay happy, stay blessed.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>softwaredevelopment</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
