Modern Creator
Harkirat Singh · YouTube

I Recreated Higgsfield From Scratch in 2 Hours

A build-along where a $300M AI video startup gets cloned end-to-end by writing markdown specs and letting a coding agent do the typing.

Posted
2 weeks ago
Duration
Format
Tutorial
educational
Views
65K
2.2K likes
Big Idea

The argument in one line.

Any app without a real technical moat can now be cloned by writing markdown spec files and letting a coding agent implement them one iteration at a time, which shifts the engineer's job from writing code to documenting intent.

Who This Is For

Read if. Skip if.

READ IF YOU ARE…
  • An engineer who already knows a stack well and wants to see how far spec-driven development with a coding agent goes on a real, deployable product.
  • A founder evaluating whether an 'AI wrapper' business is worth building, and wanting the honest cost and architecture picture behind one.
  • A developer curious how you stitch sub-10-second video-model clips into a coherent multi-minute video with face-swapped avatars.
  • Anyone deciding whether to trust an autonomous agent with a whole feature versus supervising it prompt by prompt.
SKIP IF…
  • You want a copy-paste tutorial with exact commands — this is a narrated workflow, not a step-by-step codealong.
  • You're looking for deep model internals of video generation — the AI layer is entirely outsourced to a routing API here.
  • You expect a polished final UI — the presenter openly admits the front end still looks rough and needs a real designer.
TL;DR

The full version, fast.

Video models got good enough that cloning a $300M AI-wrapper startup is now a documentation problem, not a coding one. Harkirat rebuilds Higgsfield by writing about twenty markdown spec files — one per feature — and having the Devin agent implement each, then dumping every decision back into a new spec so the codebase stays self-documenting for future agents. The stack is deliberately boring: React front end, TypeScript/Express back end, Postgres, MinIO for storage, a self-hosted FaceFusion model for face swaps, and OpenRouter as the only external call for every video and image model. The genuinely hard, novel part is a Premiere-Pro-style timeline editor that stitches short model clips into a multi-minute face-swapped 'template' anyone can insert themselves into. The lesson: a strong engineer paired with agents ships far faster, but taste, product judgment, and the manual craft of building good content still can't be prompted away.

Free for members

Chat with this breakdown — free.

Sign in and you get 23 free chat messages on us — ask for the hook, quote a framework, find the exact transcript moment, generate a markdown action plan. Bring your own key when you want unlimited.

Create a free account →
Chapters

Where the time goes.

00:0004:23

01 · The pitch

Sets the stakes: cloning a $300M startup, why AI wrappers win, and the thesis that most apps without a moat can be distilled.

04:2310:31

02 · Part 0: What we're building

Walks the prebuilt front-end mockups — landing page, video creation, and the ambitious face-swap 'templates' idea for multi-minute videos.

10:3127:19

03 · Part 1: Architecture

Lays out the deliberately boring stack — Express, Postgres/Prisma, MinIO, self-hosted FaceFusion, and OpenRouter as the only external AI call.

27:1942:40

04 · Coding round 1: bootstrap

Writes the first spec to one-shot the whole v1; Devin takes ~25 minutes to scaffold the monorepo, back end, front end, and infra, then documents its own decisions.

42:4055:44

05 · Images and face swap

A second spec adds an image tab and a self-hosted face-swap tab; both work, revealing the free local model's quality limits.

55:441:43:18

06 · The template timeline editor

The novel core: a Premiere-Pro-style timeline where an admin stitches short clips into a long face-swapped video. Many spec iterations to add bake, drag, crop, snapping, and fix the export re-render bug.

1:43:181:50:15

07 · Offloading to cloud agents overnight

Pushes to GitHub and hands credits/Razorpay, a UI overhaul, and a landing page to Devin's cloud agent to run while he sleeps.

1:50:152:07:52

08 · New day: reviewing PRs and building the real template

Reviews overnight PRs, spends ~24 hours hand-building the first real template, and compares free versus paid face-swap models on Bollywood clips.

2:07:522:19:22

09 · Payments, deploy, and lessons

Wires Razorpay credits, deploys to pixovid.com on a DigitalOcean Kubernetes cluster with a separate FaceFusion machine, and closes on what agents change for good engineers.

Atomic Insights

Lines worth screenshotting.

  • Higgsfield hit $200M ARR in under nine months as an AI wrapper, proving people pay for convenience rather than going to the raw model themselves.
  • If an app has no specific technical moat, it is now trivially cloneable — the value moves to the product, taste, and content, not the code.
  • The future of coding is most of the code written by AI but documented by humans as thoroughly as possible.
  • Spec-driven development means every feature is a markdown file, and after the agent builds it you make the agent dump its own decisions into a new spec so context never gets lost.
  • The entire AI layer can be outsourced to one routing API, so a video SaaS's own architecture is just CRUD endpoints, a database, and object storage.
  • Video models can only generate 5-10 seconds at a time, so a multi-minute AI video is really many short clips stitched on a timeline, not one generation.
  • A single feature that looks simple — a draggable, croppable, snapping timeline editor — can consume six to seven hours of back-and-forth with an agent.
  • Reference images and start frames are not interchangeable: some models silently treat a reference avatar as the literal first frame and break the shot.
  • Face swap quality is a spectrum — a free self-hosted model keeps the original facial structure, while a paid model actually rewrites the features to match.
  • One full face-swapped template render costs about six to seven dollars in model calls, so charging the end user ten dollars leaves a thin but real margin.
  • An expensive agent on a trivial task is often the reason a build feels slow — an adaptive model that downshifts is faster for simple fixes.
  • Coding was the easy three days; building the actual first good template and the content took far longer than writing any of the code.
  • Cloud agents can run whole features overnight against your GitHub repo while you sleep, but they lack your local secrets and services, so results vary.
  • Expertise with AI beats no expertise with AI — knowing what good looks like is what lets you steer the agent, especially on UI.
Takeaway

Cloning is now a documentation problem, not a coding one.

WHAT TO LEARN

When the AI layer is a single API call, the moat isn't the code — it's the spec discipline, product taste, and content you wrap around it.

01The pitch
  • Treat convenience as the product: an AI wrapper can reach $200M ARR because users pay to not deal with the raw model themselves.
  • Assume any app without a specific technical moat is cloneable now, and put your energy into the product, taste, and content that can't be copied.
03Part 1: Architecture
  • Outsource the AI layer to one routing API so your own system collapses to CRUD, a database, and object storage — the front end becomes the hard part.
  • Prefer self-hosted, credit-card-free infrastructure like MinIO and FaceFusion locally so you can build and test the whole app before paying anyone.
04Coding round 1: bootstrap
  • Write each feature as a markdown spec before the agent builds it, then make the agent dump its decisions into a new spec so context compounds.
  • Spend your effort engineering the prompt up front — the better the spec, the fewer questions the agent asks mid-build.
06The template timeline editor
  • Build long AI videos as many short timestamped clips on a timeline, since models only generate 5-10 seconds cleanly at a time.
  • Know that reference images and start frames are not the same input — some models treat a reference avatar as the literal first frame and break the shot.
  • Expect a deceptively 'simple' UI feature like drag, crop, and snap to eat six-plus hours of agent back-and-forth.
07Offloading to cloud agents overnight
  • Use an autonomous agent for whole features but stay the orchestrator: you still answer its architecture questions and debug the genuinely hard bugs.
  • Match the model to the task — an expensive model on a trivial fix is often why a build feels slow.
08New day: reviewing PRs and building the real template
  • Match the face-swap model to the goal: free self-hosted keeps original facial structure, paid rewrites the features to actually match the avatar.
  • Do the unit economics before you sell — a full template render costs about six to seven dollars in model calls, so price with margin in mind.
  • Expect the content, not the code, to be the slow part — the three days of coding were easy next to building one genuinely good template.
Glossary

Terms worth knowing.

AI wrapper
A product that adds a UI, workflow, and billing on top of someone else's AI models rather than training its own, monetizing convenience and packaging.
Spec-driven development
A workflow where each feature is described in a markdown file, a coding agent implements it, and the agent's resulting decisions are written back into a new spec so the whole build is documented for future agents.
Higgsfield
A fast-growing AI video-generation platform where users type prompts to create marketing and film-style videos; the product being cloned in this build.
Devin
An autonomous coding agent, used here via a CLI, an editor, and a cloud mode that can run tasks against a GitHub repo unattended.
OpenRouter
A routing API that exposes many AI models behind one endpoint; here it is the single external service for every video and image model call.
MinIO
A self-hosted, S3-compatible object store used locally to hold generated videos and images without needing a cloud provider or credit card.
FaceFusion
An open-source face-swapping model that can be self-hosted, used to swap a user's avatar into generated frames.
Face swap
Replacing the face in an image or frame with another person's face, done here on a shot's start and end frames before the video model animates between them.
Bake
Generating the real video for a single timeline block so you can preview the actual output instead of just the prompt; borrowed from 3D rendering, where baking commits textures onto a model.
Template
A pre-built multi-clip video with defined avatar slots that any user can regenerate with their own face to become the main character.
Turborepo
A monorepo build system that lets multiple apps and shared packages live and build together in one repository.
Razorpay
An Indian payment gateway, integrated here to sell credit packs that users spend on generating videos, images, and templates.
Resources

Things they pointed at.

Quotables

Lines you could clip.

00:30
Almost every website or app that you see today, unless it has a very specific moat, should be very easy to clone and distill.
the thesis in one line, no setup neededTikTok hook↗ Tweet quote
05:00
Most of the code is written by AI, but documented by humans as well as possible.
crisp prediction about how teams will codenewsletter pull-quote↗ Tweet quote
2:15:00
Expertise with AI is better than no expertise with AI.
tight, quotable, counters the 'agents replace engineers' takeIG reel cold open↗ Tweet quote
2:17:30
AI makes a good engineer much better — a good engineer can still execute much faster and better than a bad engineer.
clear stance on where the leverage actually landsnewsletter pull-quote↗ Tweet quote
2:01:40
It took me like three days of cognitive abilities to build this. Coding was easy — building the product and the actual videos was hard.
reframes where the real work isTikTok hook↗ Tweet quote
The Script

Word for word.

Read-along

Don't just watch it. Burn it in.

See every word as it's spoken — crank it to 2× and still catch all of it. The same dual-channel trick behind Amazon's Kindle + Audible.

00:00Let me set the context for the video. Check out this video. And maybe this one.
00:10Video models have gotten really good today. In this video I'm going to clone a $300,000,000 startup called Hixfield. Hixfield is one of the most if not the most popular platform today for video generation.
00:19They reached $200,000,000 in ARR in less than nine months and surprisingly the product is very simple. AR wrappers are probably the most high growth startups today and in this video we'll build one end to end.
00:29This is the first time on the channel that we have a product live on the internet for anyone to buy and use and this is thanks to the power of coding tools. It took me less than three days to ideation to deploying a working product on the internet and I feel distillation as a concept will pour over to full stack apps. Almost every website or app that you see today unless it has a very specific mode should be very easy to clone and distill.
00:49In this two hour video, we'll build a website where people can come, sign up, pay to buy credits and generate images, generate videos and generate long form three to four minute videos of famous Bollywood or Hollywood songs.
01:09The first part is a simple AI rapper. The second part of long form videos is slightly more complex and novel. Video models today can only generate five to ten seconds of video.
01:18So stitching together a three minute AI video for the end user is a complex challenge we'll go through today. We'll learn about video models, face swap models, image models. We'll build a premier pro like UI in the front end where people can come and stitch together long form videos for the end user.
01:34Once a long form video is stitched, anyone can come upload an avatar and put themselves in a long form three minute video. If you want to put yourself in one of these videos, all you have to do is go to the website, upload an avatar of yours and click on generate.
01:46In less than thirty minutes, you'll have yourself as the main character of this video. In this video, I've covered the end to end journey of ideation, building, productizing, and productionizing this product.
01:56And the goal of the video is for you to understand how spec driven development happens. In the end, the final app, which looks very close to Hicksfield, can be rebuilt by you with the 20 specs that I've written. Every time I've interacted with a coding agent, I've done it through writing a lot of files around what I want to build, the architecture of building it, the various edge cases, and the full history of how the product was built is dumped down in MD files.
02:17I feel eventually this is how most companies are going to write code, but most of the code is written by AI but documented by humans as well as possible. It's a two hour video. We're using Devon as a coding agent, cloud agent, the editor.
02:27We're not token maxing. We're judiciously using the power of AI agents today to build a product how I would build if I was building a company from scratch. Without any further ado, let's get right into it.
02:42We've done a bunch of videos in our build your own series on the channel in which we pick a product and try to build it from scratch and hand code it without using AI. Today, we're taking a different route. We're going to, I wouldn't say vibe code, but use the power of agentic tools today to ship out a product in less than three hours.
03:04The goal is that by the end of three hours, we have a fully functioning deployed website with payments working, so that if we want, we can start to accept payments tomorrow, um, and have a production ready URL ready. The product that we're building is Hicksfield, a startup that started I think a year and a half ago.
03:21Currently, it's doing 300, 400 mil ARR. It's a website where people come and generate videos using prompts primarily for marketing purposes, sometimes for filmmaking purposes. It is an AI wrapper but AI wrappers have been doing really well.
03:33I think people do tend to pay for convenience, hence they use Higgs field and don't directly go to Gemini and I think that will continue and hence there's a lot of products that can be built on top of AI to deliver build. Building something similar.
03:46We'll build one variation of Higgs field, which is cloning the product, and then I have a few ideas to explore around how we can make it better for slightly longer films. This is an idea I've had for a few years now, but today's video models make it possible. So we'll understand what that variation of Higgs field is and have an end to end working product by the end.
04:04We'll be using the Devin CLI as our coding assistant today. We'll write a lot of spec files, document the whole process, understand the code that the AI is writing, but I will almost not write any line of code myself. We'll just work as an orchestrator, which sort of has become the job of an engineer today.
04:20Without any further ado, let's get right into it. Alright. Let's understand what we're building.
04:26I've created all the front end pages that we will eventually need, uh, and I think this will give us a good high level idea of what we're trying to achieve. We need a landing page that looks very close to Hicksfield. It shows a bunch of videos that have been created using various prompts of Hicksfield and you can remix one of these videos if you want.
04:43When we say remix, we simply mean you can click on the video, on a remix button, change the prompt a bit, change the avatars that are used, um, and a new video comes out that looks very close to the video that is already there. A video creation page again same as Hicksfield, a page where you can come select the model that you want to use could be Cdance, could be Vio3, could be other video models that exist.
05:05If needed add a bunch of reference videos, you can also add start frames and end frames that you know sort of let you make sure that the video starts from a specific image frame and ends at a specific image frame, um, that's usually a good idea to you know, um, add both of them so you have a structure to a longer video. Then you can describe the prompt what you want to be done in the video, select, uh, the aspect ratios, duration, etc.
05:28Click on generate, um, and that would generate a video for you for example if I select my image and write a prompt like this person dancing and click on generate. After a few seconds the video is generated using the specific model, um, that you can play, see, hopefully you like it, if you don't like it you can regenerate so on and so forth.
05:45That's the first part. Um, there is a video history section in hex field as well where you can see the history of videos that you have created in the past. This part should be easy and can be extended easily to generate audios, generate images, generate games, generate websites if you want to.
06:00You can expand this as much as you want. Horizontally, you know videos is one thing we support right now which sort of makes sense but Hixfield now supports games and a bunch of other things. A story for later should be very easy to expand this architecture to whatever you might want to build using AI in the future.
06:17That's part one, that's the easy part. You can probably wrap up Hicksfield by this point, know you've built something like Hicksfield. The second part is different ambitious and you know may work may not work, but you know something like this doesn't really exist I think, um, and I don't know if this will work, it probably might work in a country like India, where you click on the second button called templates, where you see a bunch of slightly longer, call them movies, them dance videos, so you know, anything between thirty seconds to ten minutes of content, where people can come, see the original video by clicking on one of these for example you know this might be a comedy film, this might be a mythical film, this might be a romantic film.
06:54You can click on it, you can see that specific video and if you want you can replace yourself as the main character of the video. I feel there is some level of you know hero concept or you know hero dilemma in this country and everyone wants to be a hero.
07:07So in country like India where music videos are very popular might just work people might want to see themselves in videos, in music videos, in stories, um, and I think there's no reason for you know for us to not have a Durandar in the future, a four hour movie where you can just replace your face and you know be the hero of the movie something like that.
07:23So we let the user upload an image and be part of this slightly longer video. The problem is video models can't generate longer videos. They can't generate you know, um, ten minutes of content at once.
07:35They will hallucinate, it'll be really bad. Um, and hence what we need to do is, we need to support a template creator UI like this which I've taken inspiration from Premiere Pro which is you know my standard video editor that I use. You need to let a person create a movie, create a template so they can come to this website upload some sort of a audio let's say you know some sort of a music audio of a song, um, and once they do they can generate individual timestamped videos so from this zero timestamp to four timestamp person standing in front of a tower staring into the abyss and you know that person can be a template for now okay for now it is avatar one but can be replaced in the future.
08:20If it is replaced in the future only the face changes everything else remains the same so the structure of these four seconds does not change even if you change the person over here and the same is true for the next eight seconds, next five seconds, next three seconds, next two seconds so on and so forth. So you have a template of a video you can submit and export it.
08:38The first long form video gets exported and people can come choose your template, replace their face with it and then get yours themselves as a part of the video that you have created. This is the slightly more ambitious thing. I've already tried this locally, uh, and you know it doesn't I don't hate the output, but I think there's you know more you can do.
08:56I've not spent too much time here, but you know something like this by the end.
09:06To think of this like a, you know, small music video. I don't really love it.
09:24Those of you don't know, I'm into a little bit of filmmaking. So we'll see if by the end I can create an actually impressive video that can go viral that people like to see themselves in. I'll spend my time building you know one such video on this template creator and see if people actually like to replace their faces with it and you know what we can charge them is what the video models are going to charge us plus you know 10% kicker on top, so you have some profit margin as well.
09:48Cool, hopefully that clears what is the product that we're building. It is a it is some variation of Higgs field, uh, for the simpler things in this video tab and then a slightly more complicated UI to do slightly more complicated things, which is always a front end challenge, which I'm very interested to explore and also happy that you know I have a coding companion Devlin in this case, um, that is going to help me through it because God I hate front end and if I had to do all this front end myself without using AI will I probably take like ten days and help with of a few engineers.
10:18Let's get into it, let's start by discussing the system design of building something like this. It should be very simple because the video model layer has been outsourced. Let's get into that next.
10:28Let's understand the architecture and all the services that we'll be building.
10:37Alright, let's begin. Let's get into the architecture of building something like this, thankfully.
10:41The architecture isn't too difficult. There aren't, you know, asynchronous back ends or extremely heavy things to build.
10:49Since a lot of, you know, I should call this like a video model. But since a lot of the infrastructure, the AI parts are outsourced, our life is much easier.
11:03We just have to stitch a few things together. The front end is probably going to be the most complicated part, especially when we build the front end based editor. The back end is going to be in TypeScript Express.
11:13It's probably going to be a bunch of CRUD endpoints. There is a case to be made to add some, you know, asynchronous architecture between these two, you know, since videos can take a long time to process.
11:27When you ask to generate a video, we will ask the model provider to generate one. It might take, you know, thirty seconds, two minutes to generate it. And hence, there's some back end communication that can happen between these two through a webhook.
11:39We'll keep it simple for now, but eventually something to optimize. The database will be standard Postgres and again, know, bunch of cruds. Nothing too crazy over here.
11:48There are two more services that we'll need. One is the object store, where we'll be dumping all the videos. So any video that the user generates, any user that we generate for templates, any images that we generate if we support images in the future audio files, all of them will be dumped in the object store.
12:03And to keep things simple and locally hostable, we'll be using MinIO, which is a self hosted S3 compatible object store that you can run locally. You can use S3 Cloudflare.
12:14You just need a credit card, so we're trying to avoid that. And lastly, there is certain use cases where we'll need face swapping.
12:22The simplest use cases, you might want to create a very cinematic image first, replace the face with your own face, and then generate a video with that frame as the first frame of the video. And hence, we will need a face swapping model. And the good thing is face swapping models are self hostable.
12:37There are bunch of open source ones that are really good. So we'll probably self host this as well. The only external service we'll need is an API provider where we give a prompt start image etc.
12:46And a model name and it just you know generates the video for us. Here, you will have to put certain credits, you know, five, ten. I'll try to create like a dummy server if you want to test it.
12:54So by the end of the video, you'll probably find like a dummy video server where you give a prompt. It always returns you the same video. But you'll be able to test using it.
13:01But in the end, you know, this is an expensive application to pursue. During the testing itself, I'm assuming I'll have to spend like $200 $100.50 dollars at the very least.
13:10And as the application actually grows, this is like a very expensive business because generating videos is not cheap. But at the same time, that gives more to this business.
13:18You know, not a lot of people will be able to spend that much upfront to build a business like this. That should be it. We can talk more about what I feel are the endpoints the back end should support, how should the front end UI look like.
13:31But I'll do all of that when I write a spec file describing what the back end should look like, what all services we need. So that in one shot, we can create a simple version of the application. An application where people can come and generate videos for now.
13:45After we're done with step one, we'll move on to step two, which would be generating images. Maybe it's generating audios. Eventually to the final portion of a more complicated longer video.
13:55Let's start off with the first version of this application, which should allow a user to come and generate a video. Select the duration of the video, start frame, end frames, reference frames.
14:05Give a prompt. Click on a Submit button and we'll generate a video for them. For now everything for free.
14:11Without any further ado, let's get into the first coding part. Coding the back end and the front end for a basic video generation website. Alrighty.
14:21Spec driven development. Let's write the very first spec to bootstrap the project and probably create the v one in maybe one shot. I think this should be one shot able.
14:31We'll see. Let's create a new folder. I'm going to name the application, I don't know, video arena.
14:37It's like a bad name, but let's just go with that for now. And I'm going to open this now in the devin editor. This basically lets you it's like a Versus Code, you know.
14:49Folk UI looks very similar. And it lets you explore the code base a little bit, which I would want to from time to time.
14:55From time to time, I would also, know, use the agent to just sprint through a bunch of things. Let me there's a very big question mark here.
15:05Should I initialize a turbo repo myself or should I ask the AI to do it? I want to own that process. So I'm going to now do a bun I don't know.
15:15Bun create turbo at latest, I think should be the command. Should initialize a turbo epo locally In this folder, I'm going to use bun as my runtime, package manager etc.
15:30And now, I have apps and packages two folders. Let me get rid of both the apps for now.
15:39We don't really need two Next. Js front ends.
15:43We'll need just one front end eventually. And in the packages as well, let me get rid of UI. Just have bare minimum, you know, functioning one works paces and a build system like TurboEbo.
15:54That's the only thing I want to, you know, have in there as the LMS context to start off. But then eventually as the context grows, we'll see what happens.
16:02I'm going to create a third folder here called the spec, where I'm going to, you know, one by one add all the specs. The first thing we're going to do is, let me call this initial video app dot md.
16:17Here I'm going to write all the code, not the code, sorry. All the explanation of what we want in this specific, you know, iteration of the project. Building Higgs field.
16:33I was building a video generator generating SaaS.
16:39It's probably a good title for it. You have an empty TurboRepo that we want to set up for a new project that I'm building.
16:55The project is awfully close to what Higgs field does.
17:03Again, I would actually should spend a lot of time inserting the context over here because I really wanted to one shot the whole, you know, the v one in one go. I don't think this is the best statement for it, but I'm just going to go with it for now. Does for now, let users come and generate a video based on a prompt duration resolution, aspect ratio, start frame, end frame, and reference frames.
17:40For now, we want to set up all the services needed for this.
17:49The service the architecture looks as follows.
17:57Front end, a React front end that the user will land to to interact with our systems back end.
18:12TypeScript plus Express back end, which exposes the CRUD endpoints the CRUD endpoints for the user.
18:24I think that's good enough.
18:29Postgres plus Prisma. The database layer, we should write all the Prisma logic in a separate package called DB, and reuse this package in the back end app.
18:54MinIO as the object store. For now, we'd like to use MinIO as the local object store.
19:07Was there anything else? Let's go back to the architecture.
19:12Database is done. Oh, face swapping model. What is the service that we use?
19:18Phase fusion. Self hosted phase fusion for phase swap.
19:24We will need this later, not right now.
19:29But let's add it to the Docker Compose. And then lastly, open router as the video model routing layer.
19:41It'll probably add, like, a reference doc. It should be able to find it, but not the worst idea in the world to give it, you know, access to this doc. Video models open router.
19:52This thing right here, open router dot a I slash models, question mark. Oh, not this. Video models open router docs.
20:00This thing right here. And there's probably an AI friendly version of this, but I think that should be good enough. Alright.
20:07For now, let's initialize all the packages slash apps.
20:13Let's write the Docker files for it. Let's also write a Docker Compose that lets the users start these services locally.
20:26We should also populate the steps to start the project locally using in the read me file.
20:40We should update agents dot m d to do the same. Anything else we need at this point?
20:48I mean, ideally, again, this is not a one shot. This is just setting up the project. The very first spec that set sets things up.
20:56I might want to just you know build the whole application also. So let me just do that next. Also add dot env dot example files to all the projects.
21:10For front end, use bun to initialize the front the React project.
21:21I should probably call this step one.
21:28And then step two, add.
21:36Oh, they also have tab. A basic UI front end.
21:46Create the login page authentication model.
21:54Video creation page, which has two tabs.
22:05Text to generation and then see your exist the existing videos.
22:14Back end, add support for authentication using Google and email.
22:22That's in login with Google and email. Add logic to talk to OpenRouter synchronously for now.
22:33Make sure all final videos and images uploaded by users or fetched from OpenRouter are dumped to our local main our local object store.
22:53Object store. It's local right now eventually might be s three.
23:10Able to select the model duration. There's just start frame, end frame, reference frames.
23:19Some of these would be optional.
23:26No need to show any pricing right now. We'll add like a credit system later. Back in I I want to add more context, but I feel like this is good enough.
23:36This it should be one shortable.
23:44The nav bar should have only one tab for now, video.
24:02View. On the right side, it should have a sign in slash profile button.
24:16Whatever ENV variables are needed eventually.
24:24Open router key slash Google auth secrets. I will provide later.
24:31For now, add them to dot ENV dot example.
24:42By the end, also add commands in the top level package dot JSON to start the full project locally using Docker Compose.
24:58I think that's a great starting point. I would assume this is able to do everything in one go. We'll choose the most, you know, strong model to implement this.
25:09I feel like this is like a five to ten minute task from here to build the video generation part. I would probably spend more time here, like fifteen to twenty minutes, just trying to engineer the prompt as well as possible.
25:24Because if I do that right now, eventually, whenever I well, whenever the model starts coding, I'll probably have to answer lesser questions, which is something I want.
25:33I want the full process to be documented really well in these spec files. Because eventually, you know, the as you as your app grows, the LLM or the agents can learn a lot from these.
25:43I would basically, you know, spend at at least thirty more minutes here. I'm not going to though. I'm going to now start the dev and CLI or I can open the agent on the right as well.
25:52I think both are fine. And make it after I change the model to an expensive one, probably high or x high, one of them.
26:04Opus 4.8 high is fine. Start implementing this spec.
26:13Alright. Moment of truth, guys. I'll see you in a few minutes.
26:20Alright. Even before we started, things went bad. I forgot to save the file.
26:25Let me do it one more time.
26:36I'm going to bypass all permissions, and I can probably done this dangerously as well. It should be fine.
26:42Alright. It's asking me a few questions that I feel I have already answered. This is fine for auth.
26:59Better auth. It is open source, so we should be fine. Table plus chat c n.
27:07Again, these are things that should be dumped into this spec. But what I'll do is once the RLM finishes, I'll ask it to dump a summary into, like, another file so that we always have context of it. A few moments later.
27:21Alrighty. Believe it or not, it took almost twenty five minutes for it to finish the whole thing. There are many reasons for it.
27:29I think downloading the face swap model might have taken some time. Testing everything inside Docker, making sure all the services are up sort of makes sense. But I still feel this is like a big enough lift for it to build in one go.
27:42The net net context window that is uses one thirty six k tokens of a million tokens. And we also use like a very heavy model, that probably explains it. By the end, it says done both the steps of the spec are implemented and verified end to end, A MonoRepo layout, a back end, a front end, the infra layer, and it's verified everything.
27:59I still need to add open router API key, better auth API key, etcetera. But before I do that, let me first ask it to dump everything it learned in a spec file.
28:08Can you dump all the decisions you made and things we added?
28:16For example, using better auth into a new spec file that starts with zero one.
28:24So we already have one spec file that starts with zero zero. That's the first step that we did. The second step or whatever the LLM did in response, want to dump to a file.
28:33So we always have this, you know, iterative spec development.
28:40Every spec that was generated, everything that was done up, at least the bigger things that were done, are all dumped somewhere for the future for, you know, the LLM or the agents or other developers in the team to sort of get context from.
28:52While that is happening, let me grab myself an open router API key and the BetterOut secret.
29:04I really thought Petrov was open source, and maybe it is.
29:12But it seems like it might not have self hosted, which is not great. Actually, maybe not. Let's explore the code a bit.
29:23Better off. Oh, just like a random string. I should add that.
29:28I should add the open outer API key. I should add a Google client ID and Google client secret, and that's it.
29:34Everything else should be fine. Let me do that in a bit. Alright.
29:38It was able to dump everything in the spec file. Let's try to explore it.
29:45It says that the document captures the concrete decisions made over here by implementing this thing, extract decisions, other notable decisions, mono repo layout, project dependencies, added database, schema, etcetera, etcetera.
30:05I like it. This is what I needed. Given that that is done, we need to now, you know, start the application and make sure it's working.
30:12For that, I will need to copy over all the env dot examples to dot ends and replace them with the right things specifically I need to replace this with you know a random string I need to get an open a open router API key.
30:28Let me do that. If I go to open router, open the dashboard as you saw I already have $30 in it.
30:34Let me quickly create an API key which will not be alive by the time you see this video.
30:44That's my open router API key. Copy, paste. Google client ID and Google client secret.
30:51Let me go to cloud.google.com.
30:56Let me create a new OAuth client.
31:07Credentials, I think, is the right place.
31:15Create new credentials or the client ID for a web application.
31:22Google Cloud is always really slow. Web application, I'm going to call it local video arena.
31:32JavaScript origins are going to be local host colon three, sorry, 4,000, and authorized redirect URLs is going to be what it provided me over here.
31:45And I think we're good to go. Let me copy the client ID, paste it over here. Let me copy the secret, paste it over here.
31:56That should be good enough. What other dot ends do we have?
32:02We have one in the DB folder, which is totally fine. Front end folder, that's totally fine. That should be fine if I'm starting all the services locally myself, you know, doing no doing node index dot j s here and here.
32:14What I'm probably going to use Docker Compose. So I need to see how environment variables are passed over here. If I open the Docker Compose, the back end gets yeah.
32:26The better auth secret, Google client ID, Google client secret, open out API key. I need to provide these.
32:41What is this colon dash syntax? Does that mean we need to change it? Probably.
32:46Alright. Or is that like a variable? It's probably is a variable.
32:50Right?
32:53This I'm seeing for the first time. Does it mean default to this thing or this environment label? Probably.
33:00Probably what it means. I will ask though. Can you explain this syntax?
33:07How do I pass the ENV variables while running Docker Compose? I think if in a top level dot n, I add these variables, they'll just, you know, get picked automatically.
33:20I think that's what it means. We'll see, though. This is variable interpolation.
33:24Document space holders before starting the thing. Think use the variable variable from the environment slash dot env file or you default to something else.
33:35Which env file though?
33:39Alright. Top level dot env. Is there a top level dot ENV?
33:49There is. And this will be another place we should add these secrets.
33:54In fact, this is the only place we need to add these secrets. So I can actually get rid of them here if I want and just add them here for now. Yeah.
34:02Let's just get rid of them here.
34:06Open router API key. Open router API key. And then a secret can be whatever I want.
34:16Beautiful.
34:21It does suggest a way to generate the secret. So let me do that and paste it over here.
34:30Beautiful. The only thing I had to change slash the only ENV I had to maintain was this top level dot ENV. Why do I not see it here?
34:42It's a dot ENV dot example. Let me copy paste, rename it to dot ENV.
34:50And actually let me revert dot env dot example because it'll get committed to GitHub eventually. Beautiful. I have a top level dot env.
34:57It has all the right secrets in there including a better or better auth secret, a Google client ID, Google client secret and open router API key. Now this should be good enough for me to start the project locally.
35:09If I do a docker compose up, hopefully, all the services should start. And the right environment variables should start to load from, you know, this top level dot ENV file.
35:21This end file is what injects environment variables over here. So the back end URL gets picked up from here. This thing right here.
35:29Same is true for, you know, other things. Although, I worry.
35:34Are these incorrect?
35:39Yeah. Probably. I think there's some level of port forwarding that's happening.
35:42Yeah. These should be fine. Alright.
35:45Let's wait for Docker Compose up to start all of the services locally.
35:53Alright. My mic stopped working for a bit, but I did spend some cognitive abilities in fixing a few issues. The thing finally works.
36:01I have a website where I can come, sign in, sign in, work in the first codes, and read, you know, a video from some prompts. And then, you know, you see something like this. One of our generation succeeded.
36:12The second one failed. Alright. We need to figure out why.
36:16But probably because I gave it, a movie, you know, screenshot as a starting thing, it had some copyright issues. But this wasn't as easy to run.
36:25It almost one shot at it. There was one challenge, though.
36:28What was happening was the back end was talking to MinIO through this URL, which makes sense because this is running in one Docker container.
36:37This is running in another Docker container, and Docker containers talk to each other through their means if you're using Docker Compose. It's like a inside the network, back end can access this on MinIO. This guy can access this on back end.
36:47This guy can access this on Postgres, so on and so forth. The problem is the final front end URL needs to be local host.
36:54When I finally open this page and see this video over here, the URL that I see over here should be local host colon 9,000 slash the video, the actual MinIO URL and not MinIO colon 9,000 slash video.
37:09That was the problem, and the solution was simple. I had to basically add another environment variable called MinIO front end endpoint and use that in this file zero, get public URL.
37:22The public base URL now is localhost colon nine thousand, yet the URL that is used by MinIO is still, you know, MinIO colon 9,000.
37:35If you know Docker containers, you probably understand it. This is the first tool. Wasn't too hard to debug.
37:40I did debug it manually. Mostly, I tried a few approaches. Finally, I did this.
37:43And now it seems to work. Let's see it in action. Let's pick a model.
37:49Cling sounds like an expensive one. I don't wanna use it, but I will.
37:53Person dancing is the simplest thing we can ask it to make. Four seconds, seven twenty p, 16 ratio nine, and let's add a starting frame.
38:02Always a good idea. I probably need to add another toggle here for, you know, allow images sorry.
38:08Allow audio or not. Right now, they're alternating audio, and the problem is oh, that's a good one to put. Let's see if I start dancing.
38:14This is like the starting frame for it. What was I saying?
38:18Yeah. Audio might be another flag we need to add add here because when you generate a video with audio, it's expensive. If any generator video without audio is cheaper.
38:26Let's add that as another flag over here. Let me create another session.
38:34Add another flag for video generation.
38:40Enable audio or not.
38:45Let's have both of them run parallelly.
38:53Alright. Sorry for the bad audio, folks. I let me recap everything I talked about from there.
38:59My mic sort of stopped working. All I've done from there is I tested. Does it work correctly or not?
39:04I've added another generate audio toggle completely through Devin, and it does work as expected. If I turn it off, the videos that are generated do not have an audio if it is disabled.
39:16There's some front end bug over here. Sometimes you see like a video repeated. But other than that, where where we were.
39:23But one thing I triggered recently is a third spec over here, which asks to build on top of the current app. We already have a video feature. Let's add image integration and a face swap feature.
39:34What is the face swap feature? A user can come put a base image and a face to replace, and we should do it for them. Use the locally running face fusion self hosted model for this.
39:44Keep that in punch. Clean code reuse code as much as possible, you know, fairly high level stuff. Honestly, I think it can implement everything from here.
39:51I started this process. Devin is currently doing its thing. I'll wait for it to finish.
39:55And then once it is done, I'll show you the final product with a video tab, an image tab, and a face swap tab. We'll try all three of them out before we proceed to the next part of the video.
40:08Alrighty. Devin was able to do a second iteration. This one took, like, twenty five minutes.
40:13And in twenty five minutes, I just tried it out. Seems like it did everything that I asked it to do. If I do a Docker PS, you will now see another service running locally, which is phase fusion's self hosted model.
40:26We have the rest of the things here. I would like to dump this in a third spec file. So can you dump all the learnings from this in a new spec file in the spec folder?
40:41And while that is happening, let me show you what it looks like.
40:45Low color is colon five one seven three. Now I have not just a video tab, but an image tab and a face swap tab. If you look at the image tab, let me add, I don't know, Nano Banana two probably.
40:57A person in a red Ferrari, a rich person.
41:04Resolution, 512. Aspect ratio, 16 to nine.
41:09I can add a reference image. Let's see if it picks my face from here. Generate image.
41:17While it is generating, let me also trigger the face swap here. I'm going to swap my face here with someone else's.
41:26I'm sure I have someone oopsie daisy here.
41:36Oh, that's Ishan, sir. Let me pick him. Swap face.
41:41So I would assume his face would come on my face now. Let's see if the image was created.
41:48It was, and that is me in a red Ferrari looking slick. Face swap, still processing. But as you can see, I replaced this image with someone else's in the past.
41:57This is Dhruv from hundred x school, and as you can see, the face got replaced. I mean, I don't You don't you guys don't know Dhruv, but looks very similar other than the beard. We'll also wait for this swap to happen.
42:07And when this finishes, I think we'll be good to go. The first three tabs have been made. There's a very big UI haul that is needed, I'll kick that down the curb for now.
42:16I want to move to the main more exciting part of this video, at least for me, which is going to be a fourth tab called templates. And probably an admin panel where admins like me can create templates. We shouldn't allow anyone to create templates right now.
42:30So the templates tab will show the currently available templates and the admin templates tab that is only available to admins. Admin should be able to create fresh templates for the user.
42:40Writing the spec spec file for that would be super interesting. So let's see if this worked. Yeah.
42:45That's Ishans face. Again, the face swap model that we're using is like a self hosted local model probably won't be the best. If I really think I can tell this is Ishaan, this is Dhruv, but still I feel there's, you know, scope of improvement here.
42:57Let me go back to Devin, and let's move on to the next section. Given that this is done, the next big part is going to be writing after it's done with writing its spec file, which it did. I'm going to create the fifth spec file, which is the most complicated and interesting one.
43:13Sorry. Fourth one.
43:17Video templates dot m d. Here, we have to write a lot of logic of, you know, letting you know what we're trying to build because there's nothing like this in the past.
43:27You can't take reference from a product like Hixfield. Hence, this will be a little tricky asking Devin eventually to create some creative product that I have in mind, probably built on top of a lot of things that we've already written.
43:40Still probably not very easy to build. I doubt it's one shottable. I would be super surprised if it is.
43:47If it does one shot, I'll I assume it'll take at least thirty minutes to an hour. But let's write the spec file for generating video templates next. Alright.
43:58If you remember from the beginning of the video, we discussed a new feature, an interesting feature in Higgs field, which is templates. People can come and create templates that look like this, which are slightly longer videos, could be ten minutes, five minutes, seven minute, eight minute videos, which are not doable in a single prompt or a single video model iteration.
44:18It's a bunch of videos stitched together. A user can come see the current set of templates, click on one of these templates, and replace their face inside if they want.
44:27But the process of creating this template is required for an admin. An admin will come, see a page like this, put an audio track at the timeline over here, and then create individual four second, eight second, ten second, three second, four second, five second video templates, which basically means a prompt with an avatar tag that leads to a final video so that the admin is able to create a long form video, let's say, of one minute thirty seconds.
44:55They can export this video. That video will appear over here, and then end users can come, open a video, enjoy the video. And if they want, replace their face in their video and become the main character of that specific video.
45:07That is what we're going to build next slightly ambitious novel, new sort of a feature, which I'm very interested to see how Devon performs on.
45:14Alright. New feature request templates.
45:22You know, the feature allows users to create templates for videos. The template should be a video that can be used as base for other videos. The user should be able to select a template and then modify.
45:30No. Not really. That's a remix feature, which we should also add.
45:34But before that, I want to create templates. We want to add a new feature, you know, for longer videos.
45:42The real appeal of a platform like this is if there is a five to ten minute video a user can create.
45:52The problem is no video models spits out such a long video without hallucinations.
46:05It we want to allow admins to create a template for longer videos. The template should be a video. Based on the know.
46:12Template will be a bunch of videos, each video built from a base prompt and one avatar that are stitched together to create a new longer form video.
46:35Bunch of videos form videos. The admins can open a template creator UI.
46:45This can be hosted on slash admins slash template slash create. Over here, the admins should see a timeline very similar to the Premiere Pro timeline.
47:07They should be able to add one audio track that will be the base audio for the full template video. They should be able to select a portion on the video.
47:25Let's say zero zero zero zero zero one zero two zero zero zero zero one four, where they write a prompt, where they can decide to a video temp video block.
47:47A video block could be either a prompt a prompt with reference images, start image, end image.
48:09Yeah. That's fine.
48:13Duration maybe. Or it could also be a photo with a face swap for an avatar followed by a would be let's do it like this.
48:32Would be a prompt with The user should also be allowed to attach a face swap on the first image and the last image.
48:49If the face swap is enabled for this specific video block, we should first swap the face for the start frame or end frame or both before we ask the model to generate the video.
49:14This series of video blocks should then be rendered based on where they are on the timeline, and a final video should be created using an avatar for this specific admin's profile.
49:42This template should now be available to new users where to users on a new templates tab where they can open a video template, see the current video, and if they want, regenerate the video with their own avatar.
50:12This also means we need a new tab called avatar where a user can come and put one to two images of themselves, and we create an avatar for them.
50:30This avatar, they can select before they generate a template for template video output for themselves.
50:43So overall, we need front end URL slash admin slash template slash create for admins to create test, view, update, and finalize slash export templates.
51:09Front end URL slash avatar. We have to create their own avatars to see and generate videos from available templates.
51:21One more feature we need is that whenever a template is exported, we should create a thumbnail for that template.
51:33When a user uses the template, we should generate a thumbnail for that user as well.
51:51This mean means whenever a new template is created, the admin upfront needs to tell how many avatars are will be part of this template.
52:10For now, only let them choose one to two avatars.
52:17I think that's good enough. I think that's a long prompt. I also think this should take at least thirty minutes to implement.
52:23I'm unsure if it'll happen in one go the way I expect it to. Let me write a few more things.
52:28Make sure the front end for the template creator is as close to the premiere port timeline as possible.
52:40That is a familiar interface for the admins who will be creating this.
52:48Alright. I think I I'm good with that. What I should do now is create a new dev instance and ask it to implement 05.
53:050404.
53:10There we go. Let's get into it.
53:16Let's see what it does. I'll probably ask a few questions, so I'm going to be here for that.
53:26It is an extensive feature.
53:41As expected, it's currently just trying to understand the code base.
53:48Already, the context is 5% filled. Just trying to read the code base.
53:55You'll probably go up to, like, 15% to just read the code base, and then probably start implementing it.
54:03How should the admins be determined? I think let's have a DB role on user.
54:09So let me select option two.
54:18Ideally, it should be asynchronous. More work, but won't time out. Yeah.
54:28I think as long as it starts sync I mean, synchronously, and if you have to refresh, it's fine. I think synchronous is fine for this. Yeah.
54:36Add a feedback to the back end is fine for now. We should change these. Like, these are all bad architectural decisions.
54:41But good for now, After Ivan has created, I'll create more spec files to do this. I want it to just one shot a bad version for now. Confirm the avatar face swap semantics and after essentially a face image that gets swapped into a block star in this.
55:00Yes. Face swap source.
55:06Avatar additionally passed as an open out the reference image for every block, not just face swap. It's both the things, which I think was point to as well. So I hope the question remained in the context.
55:27Alright. Almost a 10% context window now, 8%.
55:35But I think it's not going to ask me any more questions, so let it rip. I'll see you guys in thirty minutes. Can almost tell this is going to take around thirty minutes to implement.
55:50Alrighty. Seems like it's done. I would be super surprised if it's done in one go.
55:55Uh, let's read through what it finally told us. It created 12 to dos, updated the d b DB schema to add avatars and admins template template block, template render, which is probably a final render.
56:06Sounds good. Added admin emails.
56:10I'm assuming that's an ENV variable plus a bunch of helpers.
56:15Create a back end endpoint for stitching videos, overlaying audios, and generating a thumbnail. Beautiful. Shared render.
56:22I think the thumbnail should be AI generated, so we should probably change this.
56:28Create a shared render pipeline. Yeah. This would be like a interesting function to look at.
56:34Probably stitches everything together and then calls it for a peg, something like that. A bunch of routes, updated Dockerfile to add a for a peg in the back end, I would assume.
56:46Change some types, front end components for avatar, templates plus gallery, creator page with previous Pro style timeline. This time, really interested to see how well it was able to, you know, build this.
56:56This probably requires another prompt spec that, you know, finesses this more.
57:03I'm assuming it's not done very well right now. Front end endpoints, sec types.
57:07Okay. One thing I'm gonna ask you to do is can you add make the current user in the DB admin, which I think is, you know, not one of my emails.
57:18Actually, before that, should have asked it to dump everything in a spec file. I'll do that right after. Can you dump all of your learnings and decisions you took?
57:30Who's this guy?
57:35In a new spec follow-up spec file.
57:46While it's doing that, let's run it. Let me stop Docker Compose. Let me rebuild front end and back end.
58:05Context windows are big enough now, dude. I think 1,000,000 tokens is enough. If if this task took, like, one seventy k tokens from what I remember, I don't know what it is anymore.
58:15Yeah. I can't find it. But, yeah, I think most tougher tasks can now be broken down into, like, three small tougher like, mildly tough tasks.
58:28Each one can be done independently with the one with a single iteration of, you know, a coding assistant like this.
58:36Alright. Back and done. Front and done.
58:38Exporting layers.
58:42This is done, still writing. Both of them are doing their thing.
58:56Alright. Images have been rebuilt. Let me now run Docker Compose up to start everything.
59:04Beautiful. It wrote all its learnings in a new spec file.
59:10This one right here. Love it. I think we're up to date.
59:14Let's test if it works as expected or not. This will be the fun part. Alright.
59:19First three tabs, I've already tested. I am an admin. So I can generate a new template and avatars and other things.
59:26Let me create a new avatar for myself. Call it Harkeerat. Choose one of my photos from here.
59:33I think there's one on my desktop. This one right here. And it needs another photo for with a different angle for some consistency, which could be this one.
59:48Create avatar. Alright. A new avatar has been created.
59:51It has two of my images. Admin, create a new template. I'm going to call it I don't know.
59:58What should we create? Like, a simple One for now.
1:00:03Music video. It has one avatar. It's sixty seconds and choose a base audio track.
1:00:12Alright. This will be interesting part. Oh, do you guys know we have a song for 100 x school as well?
1:00:18Let me quickly find it.
1:00:24Perfect. I do have a song for you. Oh, where did it go?
1:00:28A music video for 100 x school.
1:00:34And let me add this rap song right here. Let me choose one hour task sixty seconds.
1:00:44Create an open editor. Alrighty. Request failed.
1:00:46That's the first error for the night. Just creating the template failed. It's going to be not very easy, it seems like.
1:00:54Internal server error. At this point, I would probably debug this myself.
1:01:02Let's see.
1:01:13Multi error.
1:01:17Is the audio too long, I would assume?
1:01:23Alright. I really would want to debug this myself. It is a minor error.
1:01:29It's not very obvious what it is, though. So I'd come to my trusted friend. Something has gone wrong.
1:01:37Please fix it. Most probably is the size of the image. Sorry.
1:01:42The audio track, I would assume, but we'll see. So assume I am not a developer and, you know, whatever that I that I got, I threw it back at the LLM.
1:01:58What is this endpoint?
1:02:15Put this one right here.
1:02:24Yeah. I can't think of any reason why this would be bad other than this.
1:02:28I think this is what's failing.
1:02:36File size 25 MB. Yeah. I think this might be bigger.
1:02:41Let's see.
1:02:47Yeah. It's 45 MB. So there you go.
1:02:49That's the problem. Let's make it a 100 MB for now. I'll stop that.
1:02:56I will rebuild the back end and restart it.
1:03:12So this is not just for image now. It's also for videos and audio.
1:03:16Sorry. Not just videos. Docker Compose up.
1:03:21Run it. Come on. No.
1:03:23It's not running only.
1:03:31Admin. 100 x school music video.
1:03:37Same thing here. One avatar. Rap.
1:03:40This is, 45 MB. Now I changed the limits. Hopefully, it's better.
1:03:44Yeah. That was it. Cool.
1:03:46Alrighty. The timeline looks snappy. Did not expect it to look this good.
1:03:52This okay. I can hover.
1:03:55Can I play? If I press spacebar, nothing happens. Yeah.
1:04:01Yeah. If I don't if it doesn't play, it'll be really hard.
1:04:07Alright. Render and export only.
1:04:15Drag on the empty track to create a clip. Alright. Five seconds.
1:04:21Let's do a four second video. This clip prompt is going to be a person staring at an old institution, um, in anger.
1:04:39Camera slowly zooms out.
1:04:45Model would be, I don't know, little probably what is that?
1:04:51The video model?
1:04:54Why is okay. See, it is here, but I want VO3. Oh, there you go.
1:04:59VO3. Seven twenty p is good. 16 to nine is good.
1:05:07I don't have a start frame or an end frame. I do want a reference image, though, but this shouldn't be choose a reference image. This should be choose an avatar.
1:05:15You know? Yeah.
1:05:17I one thing it has missed is when an admin comes and creates a new thing. Let's write these down.
1:05:25Did not I mean, it did one shot it, but I would still say, you know, few things are missing. So let me open the spec files, add a new zero seven dash follow ups dot or video template follow ups dot m d.
1:05:42Few things need to change in the video template.
1:05:47Number one, when creating the template, the admin should select one of their avatars or two as the avatars that will be used during the video generation or template generation.
1:06:08When they create a template, a video block, they should simply select avatar one or avatar two as reference image.
1:06:35If they select face swap the start frame or face swap the end frame, they should still just select which avatar one or two should be face swapped.
1:06:59They shouldn't reupload a new image because then the template isn't generic anymore.
1:07:11Alright? That's one.
1:07:14I should be allowed to play the timeline and preview it as well. Standard feature that Premiere Pro has.
1:07:27I think that's good enough. I don't know if you need a fresh dev instance for this.
1:07:32Probably do. Can you implement at zero six or zero seven dash?
1:07:43Alright. Implement at spec slash zero seven. Alright.
1:07:49Wanted to see it here. Okay. Let me create a fresh window anyway.
1:07:53This is something I would have wanted. Problem is now it'll do a lot of back and forth to figure out the code base, which it already had in context before, but that's fine. Actually, I can just resume this session.
1:08:05Can you now implement at zero seven?
1:08:11There are a few follow ups I added. Alrighty.
1:08:21We'll wait for it. A few moments later. Alrighty.
1:08:25Seems like it did a second iteration. Time to restart it.
1:08:30So toggle compose up, rebuild the back end.
1:08:41Did that. Docker Compose up one more time. Go here and let's see.
1:08:52There we go. Alright. Admin.
1:08:57I need to school music video to the draft right now. Alright. I don't know if I can use this one.
1:09:04I'd probably probably can. Saying did not fix what I wanted to fix, and that is because I did not restart the front end.
1:09:16So let me rebuild the front end as well. Might take slightly longer.
1:09:29Faster than I was hoping for. One more time. Refresh.
1:09:38Alright. Let's call a 100 x school music video two. Avatar one, Avatar two, none.
1:09:49And audio file is rap music. This one right here. Create an open editor.
1:09:55Alright. Again, phase bar should play it, but okay. If I play it, the song starts, which is good.
1:10:01Now let me add the very first track for four seconds.
1:10:10Ideally, it should only be this long, but I think that's like a weird duration that you can't give. So alright.
1:10:16Same thing again. Person staring at tier three college or, you know, college building feeling lost and angry.
1:10:28Model would be one of the better ones, so v o three. Resolution would be seven twenty p. Asphalt ratio would be 16 to nine.
1:10:35App reference range would be Herkira. That is correct.
1:10:42There's no start frame. There is no end frame, and there is no need for these either. Save block.
1:10:49Alright. Seems like this block is saved, but I do need to preview it.
1:10:55I can't wait for the render and export to finally see the video. It should. There should be a button called bake that actually bakes the video, which means actually generates one preview for me, I can, you know, change it if need be.
1:11:08Next feature to add, again, I will create another spec. So zero eight bake feature dot m d.
1:11:18Add a bake feature on the template generator creator UI.
1:11:28It should actually send the prompt and the avatar slash start frame slash end frame to the models to actually generate the video so I can actually preview it and see if I like it.
1:11:50If I don't, I will edit and change it. That looks fine to me.
1:11:56Go back to Devin, probably resume one of the older sessions and ask it to implement this spec.
1:12:06So implement at zero seven.
1:12:12Alright. Let's wait for it. A few moments later.
1:12:15Alright. Seems like it did go through the whole thing up and added the feature to let's see what it did.
1:12:25Added a bake button that generates a single blocks video, so you can preview the actual output on the timeline instead of just the prompt, exactly what we wanted, back end changes, front end changes, verification. Baking calls of video model for real, so it costs open out of credits. It takes a few minutes per block, etcetera, etcetera.
1:12:39That's fine. As before, rerun everything. So let me do that.
1:12:43Let me rebuild the front end and the back end. Done. Let me start Docker Compose up again.
1:12:53Refresh. Open video two and open click on this guy.
1:12:59There's a button called bake. Beautiful. I can save a bunch of blocks and individually bake them.
1:13:04Let's start baking the first video. Alrighty. This should hopefully update this video to actually show the output, which is a person sitting in front of a college building, and also that person should look like me because that was the avatar.
1:13:17I did not give a start frame or an end frame, but that's fine. Let's wait.
1:13:25Unsupported video duration. Subduition duration is eight. Oh, alright.
1:13:30We should add that as a feature. For now, I'm going to increase this the oh, I can't. Can I okay?
1:13:36Can I leave a delete a block? I oh, it can. Okay.
1:13:40Let me delete this block. Let me re add a eight second block, but we'll fix that as a feature. That should be eight seconds, I think.
1:13:48Yeah. Student in front of a building staring at it in anger and despair.
1:14:02And v o three again, 07:20 p.
1:14:07Exchange to nine. We should have Avatar is fine. Save block.
1:14:13It's been saved. Bake. Let me, meanwhile, start to populate these follow ups.
1:14:21New file, another feature called duration per model dot m d.
1:14:29Some models only support certain durations.
1:14:34For example, v o three only supports eight seconds. This is probably a very expensive video that I made, by the way, which I shouldn't have.
1:14:45We should only show the specific models that are possible to be used for the selected duration.
1:15:00We should also probably only allow certain duration lengths, four seconds, eight seconds, etcetera.
1:15:14That should be good. This also means we need a feature of video overlaps On the timeline, I should see multiple video tracks.
1:15:36And I might generate a eight second video with v o three, but I might only want to use the first four seconds.
1:15:49On a video track above it, I will generate a new video block which has a start and that was the first video.
1:16:00That's perfect. That should be good enough. Go back to Devin, ask it to implement at zero.
1:16:06Let me save that. Nine. So have to restart it.
1:16:13A newly created file, for some reason, doesn't appear over here.
1:16:19Employment at o nine dash.
1:16:23There we go. Beautiful. While it is doing it, let's see.
1:16:31We did it completed with no output. Okay.
1:16:35Time to go to open router and see what's up.
1:16:40Let's look at the workspace, the logs. And what happened here?
1:16:47Probably the one. Seems like it turned to 200. Why did it not work?
1:16:52Close. Let's see. Jobs activity.
1:16:57I don't know where is it.
1:17:01API keys. I think credits followed by this button should show a job.
1:17:11So if I open oh, it failed indeed. But why? Content may have been filtered.
1:17:18What does that mean? I hope I wasn't charged for this. Seems like I wasn't.
1:17:23Okay. Let's try a different model. I'm going to delete this.
1:17:27I'm going to re add a eight second block. Or maybe let's add four seconds and choose like a different model. A student staring at college in despair.
1:17:39Let's choose one of cheaper ones. I don't know which one would it be. Probably I don't It seems like a cheap one.
1:17:48I worry some of these cheaper ones do not support reference avatars. So it might not show my face, but that's fine.
1:17:56Block has been saved. Bake it. For that is not supported, five second or ten second is supported.
1:18:04What was the model again? Alibaba one. Alright.
1:18:07Let me now generate a five second audio then. What else?
1:18:14Staring at a college build. The spare Camera should zoom out.
1:18:24Seven twenty p, 60 this to nine. Which one was it? Alibaba one two point six.
1:18:31I think that's the one. Reference image. Avatar is fine.
1:18:34And save and bake. Alright. Seems like it is baking.
1:18:40We'll wait for it. Seems like it's also implementing the follow-up features. We'll wait for it.
1:18:45A few moments later.
1:18:47Alrighty. Seems like it is done. Few changes that we added to do.
1:18:53Let me rebuild front end and back end. Let me restart the Docker servers.
1:19:04Alrighty. Admin music video.
1:19:08I did bake one avatars. Oh, that's right. That's the wrong one.
1:19:13Let's pick the right one. Shall we the second one. There we go.
1:19:18I did bake one, the first video. I gave my avatar as a reference image, but for some reason, it took my avatar as the starting image, which is a problem.
1:19:30We have to figure out why that is. Could be a model issue. You know, certain models don't support reference images.
1:19:36It is if you give them a reference image, they take it as a starter image is what happened here. This is what it looks like right now.
1:19:48Alright. What I've changed is we can add another video track.
1:19:53So I think for the first five, six seconds, this makes sense.
1:20:00At this point, I should add another video. So I'll add a new video, which is probably six seconds.
1:20:08Alright? I should be allowed to drag these, by the way. This one should be, you know, side angle of a person in front of a college building who is sad.
1:20:27Six second duration on the second track over here even though, you know, we shouldn't be allowed to move it. Seven twenty p, 16 is to nine.
1:20:37Hercules as the avatar. And let's try this happy horse model and maybe it's better. I worry again, you know, it it does not take six seconds as one of the durations.
1:20:48It seems like it does. Otherwise, it would have thrown an error by now. Okay.
1:20:54At this point, we should see the second one now. Let it bake.
1:21:06While this is happening, I have a bunch of more changes. As expected, this is the place where I expect most of the changes to happen, the video UI, uh, video UI updates dot m d.
1:21:19I should be allowed to move a video was it called track or segment?
1:21:30Uh, left and right, or I should call it drag.
1:21:36I should also be allowed to move it up and down.
1:21:43Let's avoid overlaps, though, um, if there is if I drag it on top of a video that's already present, it should get rejected.
1:22:01Alright. That should do it. Uh, let's ask Devin to implement this next.
1:22:11I'm still going to resume the old conversation because it has a lot of context.
1:22:20And, hopefully, the video generation is done now. Yeah.
1:22:25It is. So if I refresh this now yeah.
1:22:36Don't hate it. Don't love it either. But this model is definitely better than this one.
1:22:40So I'm going to proceed with this model now.
1:22:51That's the third one. So at this point, I need, like, a third video. Let's see if I can seems like I can't.
1:23:02Yeah. It's not great. I'll need to keep adding tracks one after the other for this to work.
1:23:12Around this time and maybe a duration of just show the duration as I expand it. So one second, two seconds, three seconds, four seconds, five seconds.
1:23:23Ideally, four seconds is good enough.
1:23:30Top level drone shot of person in front of college building. Drone should move up.
1:23:43I think I'll select the same model. Duration is fine. Seven twenty p, 16 is to nine.
1:23:48That rhymes. Save block, bake it.
1:23:54Do you know where the term bake comes from? It comes from if you ever use Blender or, you know, rendering engines like these, over there, you do something very similar.
1:24:02You create like a a low pixel three d avatar. When you click on bake, it actually bakes the, you know, the colors, the textures on top of it.
1:24:12So it's like a common term when you have something primitive and you want to actually see the final output of it, but that's where, you know, the term bake came into my head. Alright.
1:24:21That was doing its thing. Video is being baked. We will wait.
1:24:25A few moments later. Alright. Hopefully, have a more updated timeline now.
1:24:31There are a lot of changes this time. We're not created like a bunch of these to dos that usually is a tell that this is a very complex task. Please dump your learnings in a spec file, and let's try it out.
1:24:48Let's go back here. Go to the admin. Go to an exclude music video.
1:24:53The other one, this is what it looks like. Can I move around now? Still oh, I didn't rebuild.
1:24:59Let me rebuild the front end and the back end.
1:25:05Restart. Refresh.
1:25:15This one. And let's see. I can can I drag them around?
1:25:19I can't drag them around. Can I crop them smaller? Still doesn't work.
1:25:24Well, it was a difficult task. Can I copy paste?
1:25:31I can copy paste. That is working. Let's try that.
1:25:54I can keep repeating these. The problem still is a bunch of features are not working. For example, this one this one.
1:26:01Copy paste, even though it works. There should be like some sort of a right click sidebar. So more things now.
1:26:06Let's create 13 timeline editor updates.
1:26:18Crop cropping feature isn't working as expected. I do see the mouse pointer change, but when click and drag to shorten the video, At least in the UI, it doesn't shorten.
1:26:41That's one. Right click on this website should on this page should be hijacked.
1:26:50It should show options like copy, paste, etcetera.
1:26:58Anything else? I think that's good enough.
1:27:02Cropping, that'll be good. One thing is I should I should be able to start dragging creating a new video block from the current marker exactly.
1:27:27Right now, it seems like I can only do it on certain steps, zero point five second steps, I think.
1:27:40Precision selection should be allowed here.
1:27:45And if the mouse pointer is close enough to the marker current point, it should snap to it, number three.
1:28:00Number four, copy, paste, delete. So one more thing I really wanted, and I forgot.
1:28:13Dragging is also not working neither horizontally nor vertically.
1:28:27Yeah.
1:28:30I think that's good enough for now. There's another thing that what was it, though?
1:28:35I forgot. Yeah. That's good enough.
1:28:38Let's ask it to now continue on this thirteenth spec file that we have.
1:28:51Implement at thirteen. Alright.
1:28:56We wait.
1:29:01A few moments later.
1:29:04While it is doing this, there are few other issues that I've found. So I'm just going to keep writing them in a spec file. I tried exporting the video, and I realized when you do export it, it regenerates all the videos.
1:29:16It rebakes them and even though they're already rebaked. They're already baked in the past. Like, some of them are bakingbug.md.
1:29:25There is a slight, call it, unoptimization in our current export functionality.
1:29:38Devoin does have an agent, so I can actually do I mean, I'll ask this guy to fix it this time.
1:29:47See, even if a few videos are already baked, seems like the export pipeline regenerates them on open router.
1:30:01Only the ones that aren't yet baked should be generated should be baked during export.
1:30:10The ones that already are should just be picked from the d b slash min IO. Alrighty. Save this, and then let's in this sidebar, ask you to implement this thing.
1:30:21So now I'm implementing two things parallelly, which is always interesting because it's interesting to see how, you know, it performs with two parallel agents trying to, in this case, access and fix the same parts of the code.
1:30:40So very interesting to see how this goes. Hold on.
1:30:51That was quick.
1:30:55Oh, my bad. My bad. My bad.
1:30:56I picked the wrong one.
1:31:03Smart. I gave it the wrong spec file.
1:31:22This model seems much faster, probably because the model is adaptive and is probably using, like, a smaller model. Not the worst thing for this specific issue.
1:31:57Alright. Let's see.
1:32:22Alright. Seems like it is done. At least that's what it says.
1:32:26Optimize for the globe in this thing. Alright. Already changed your oh, there you go.
1:32:35If block dot video key already play baked, reuse the existing video. Only only otherwise render block clip, which probably, yeah, does a bunch of things.
1:32:46If you have swap face swap face, sniff image mime. Man, they have weird, you know, names or functions.
1:32:55But, okay, that works. Cool. Thank you, sir.
1:32:57I think you did your job well.
1:33:01We'll wait for it to finish.
1:33:03A few moments later.
1:33:05Guys, it does work. That one prompt, whatever the last spec was for us, I think 13 or 12, fixed everything.
1:33:13I can drag things horizontally. I can drag them vertically. That's beautiful.
1:33:18I can shrink them. So let's try that out. Let me shrink this guy up until this point.
1:33:23This should be a little pale. This should be a little pale. Let's see.
1:33:34At this point, this should guy this guy which this guy should come. It's also snapping really well. So, you know, if it if I get close to it, it just snaps to the marker, which is great.
1:33:47This is exactly how Premiere Pro feels like, which is beautiful.
1:34:02So at this point, I would have, you know, as as long as it gets. Okay.
1:34:07So here, play should actually play it, but you get the idea. It's fine.
1:34:16Let's see if it fixed the export bug. What was happening right now is all of these videos are baked already, so there's no reason to regenerate them. But when I was exporting, it was regenerating them one after the other.
1:34:25So this is what the logs look like right now on OpenRouter. And I hope when I export this video, it doesn't add more things.
1:34:31All the videos are already baked. So it should just render the final video, which would be like an FFmpeg process that stitches them around.
1:34:38And it seems like it is with that happened quick.
1:34:58Alright. That's exactly what I needed.
1:35:00Can I change the audio icon? It's fine, though. Beautiful.
1:35:03I think that's exactly what I needed. Render and export worked, which probably means it's available in templates, and it is it shows me a thumbnail.
1:35:14The thumbnail should be AI generated. That's one thing I'll change. The thumbnail generated during export of a template needs to be AI generated.
1:35:31Try generating one using the prompts of the video timeline.
1:35:40It should not be FWmpeg screenshot.
1:35:49Right now, the thumbnail looks like this is, you know, something we don't want. Alright. Generate with my avatar.
1:35:53Now let me add another avatar. Let me call this guy Ishan because I have one of his photos.
1:36:03Well, I need two photos. I'll just keep them the same, honestly.
1:36:08Alright. New avatar created. Now let's say someone comes to my website and they really like this template.
1:36:13They're like, wow. This is such a cool 100 x cool video. They click on generate with my avatar.
1:36:16They select their avatar. That's Isaan and click on generate my video. This should take a long time now because that happened a little too quick.
1:36:33My videos.
1:36:36This is me. This is me as well. Okay.
1:36:40These are two of my exports. That's fine. This one's still processing, which is cool.
1:36:44And if I go here, it is hopefully now generating the individual videos. It is and there's no pending job, which is not create.
1:36:54Seems like the export functionality is working, but the template generation functionality is broken.
1:37:03This one right here. I'm gonna try it one more time. Ishaan generate my video.
1:37:12Yeah. Something's up here. This is definitely not right.
1:37:20I just repeated videos. Yeah. That's a bug.
1:37:24Well, the good thing is we have a friend who can help us solve a bug. There's a bug in the generate with my avatar functionality for a template.
1:37:43I should put this in a file. Fifteen template bug dot t s.
1:37:52Oh, I said t s. It should be MD.
1:38:00When I am exporting with a new avatar, it is not working.
1:38:06The avatar is not gonna export. Seems like it is simply using the original video.
1:38:17So the new avatar, we should start a longer pipeline that actually regenerates all the video blocks for this user and finally merges them to create the final template video.
1:38:41Also, during this process, we should ensure we are not rebaking two same video blocks for the same avatar.
1:38:57Also, we should probably parallelize creating these on open router.
1:39:05No need for the process to be sequential, and that should do it.
1:39:13Implement 15. Cool.
1:39:18And is this thing done? It's working. So two things happening apparently again.
1:39:24The first one, again, I forgot. Oh, yeah. The thumbnail should be generated via AI.
1:39:28I'm assuming this is very verbose. Now the whole, you know, video template creation, back end pipeline, and front end and export functionality is like a lot of code. And as you can see now, it's like I mean, I would have assumed this like a very simple feature.
1:39:42It's taking long for the AI to write this code. Same is true here. This could also be because we're using a very powerful model for something very simple.
1:39:49And here, we're using an adaptive model, so I'm hoping it'll be faster. Let's see.
1:39:53A few moments later.
1:39:55Alright. Both the things are done. I forgot.
1:39:58This one generated a thumbnail that's AI generated. Beautiful. And this one generated or fixed, hopefully, the template creation functionality.
1:40:11Let's rebuild everything.
1:40:25Let's restart Let's try generating with Ishaan's avatar mouse.
1:40:40It'll be like a mildly expensive video, probably like $3 or something like that. Alright. Generating this can take several minutes.
1:40:47Do we have new jobs triggered now? Yeah. We do.
1:40:51We have three jobs queued, which is exactly what I would expect because this video has three AI generated videos, some of them repeated. But, yes, for Ishaan now, hopefully, are three parallel requests that have gone out.
1:41:06And once they finish, I think we should be sorted. Although either the front end is oh, no.
1:41:14Never mind. Still here. Oh, no.
1:41:16Never mind. Which one of these are that? Yeah.
1:41:20I don't know. For some reason, I got redirected here even though the video isn't yet generated, but it's okay.
1:41:26It still says processing, so we're fine. We'll wait.
1:41:30A few moments later.
1:41:32Alright. It's working as expected, guys. Let me start two of these videos parallelly so that you can see, you know, they sort of work similarly even though the people in the videos are different.
1:41:46So that's me. That's Ishan.
1:41:52You get the idea. Once the template is generated, even though it's like an ugly template right now, a person can come and, you know, put in their avatar and just change the full video for them to be the main character of the video.
1:42:07Now comes the interesting part. We have to do a bunch of things now. We need to add a credit system, RazorPay integration so people can pay.
1:42:14We need to make the UI much better. And most importantly, I need to spend my own time or, you know, a few editors need to spend some time to create these templates.
1:42:23Only if we have good templates does it make sense to, you know, build a website like this. The good thing is, I mean, I created a very dumb template right now, But I only spent like, you know, I don't know, probably 5 to $10 doing it. So it's to create 10 good templates, you probably need to spend like 100, 200, $300, something like that, which is probably the last thing I'll do.
1:42:42Before that, I now want a full UI haul. I want the credit system. I want Razorpay.
1:42:46All three of them very big tasks. So I am going to now I'm gonna hit the bed.
1:42:52So I want all three of these to happen, but I want these to happen on the cloud and not on my machine because I'm sleeping. What I'm going to do is I'm going to log in to Devin. I'm also going to push this to GitHub at this point.
1:43:02So git init, git add.git commit. I should have committed this over time, but it's fine.
1:43:09Version one complete. Alrighty. And let me push this as well.
1:43:20Let me push this to a repository.
1:43:25It's gonna have access to a repo code as 30. So let's put it there.
1:43:37Let me call it video arena.
1:43:43Happy to keep it private for now even though it can be public. I don't think it's a problem. Eventually, it will be public.
1:43:50Git remote at origin, git push origin head. So they should push the full repo.
1:43:59And now hopefully Devon has access to it already. This is the Devon UI and the good thing about the Devon UI is you can log in here, connect your GitHub repo like I have already or your GitHub organization, your personal GitHub, etcetera and offload these tasks while you're sleeping.
1:44:15But this is something I want to do. So add repositories. Which one is it?
1:44:20It's video arena. Hopefully, it's here.
1:44:24There we go. Beautiful.
1:44:28Seems like it's already here. So I'll go back. I will how do I select a specific repo?
1:44:39Oh, there we go. Video arena.
1:44:43Beautiful.
1:44:45Oh, you can also select the OS you want, including Windows. That's interesting. We need to implement again, this should be a spec file, so I'll ask you to once you dump it to a spec file.
1:44:57Credits system and payments using Razorpay.
1:45:03This is only for end users and not for admins who generate templates.
1:45:15Put a scene figure out the best pricing model.
1:45:22Let's have three plans. Oh, fuck. Stop.
1:45:26How do I stop it? I'll stop it. I'll copy it.
1:45:31I will do it one more time.
1:45:35Select Vidirena here. Let's have three plans.
1:45:42Rupees 1,000, rupees 5 I don't know.
1:45:463,000, rupees 8,000. Give user credits accordingly, debit their credits whenever they generate a video, audio, or a third thing, which was, you know, a template.
1:46:06That's very vague. Document all your learnings in a new spec file, and finally, commit to the main repo.
1:46:21It's vague in the sense I mean, it's not really vague, but I would assume it it'll ask me a few questions.
1:46:34Not yet. Beautiful. Let me start another session.
1:46:38We need a UI, you know, overhauls. Let me just do that. UI looks ugly right now.
1:46:44Can you please up make it prettier? Do not touch the template creator screen too much.
1:46:57It works well and is anyways only access able to the admins, so I wouldn't want that functionality broken.
1:47:11I would also choose, like, GBT 5.5 probably.
1:47:20I've heard it's great in UI. We'll find out, I guess. Land also, sure you implement a nice landing page.
1:47:35We don't have one right now. Beautiful. That should do it.
1:47:38So now I have two agents running. They can run on the cloud. They're not running on my machine, which is, you know, a good thing because I'm going to hit the bed now.
1:47:47And by the time I wake up, I hope two very ambitious features have been built. Honestly, after this, there's not much. If the UI that is built is actually really good, if the payment system works as expected.
1:48:00The only other thing I would like to add would be to decouple services a bit. Right now, what's happening is everything is running on on the same back end, which is not great, especially, you know, because a bunch of these are FFMPIC processes.
1:48:12So we would probably decouple the system a bit, have, you know, a bunch of different services or, you know, call it whatever microservices, you know, be like macro services, which actually do some video stuff and break the repo down into some smaller parts.
1:48:26Other than that, I mean, this like good enough or probably like a great v one depending on what kind of UI we get over here. So I'll wait for that. With that, I'm gonna hit the bed.
1:48:35I will close this tab and I will hope while the tab is closed, since it is a Cloud Agent, it will keep on running, which is exactly what is happening.
1:48:45I'm excited to see how it works. Because the thing is, this Cloud Agent does not have access to my open router key and a database URL, etcetera. Etcetera.
1:48:53It it can probably confirm the face swapping model locally, which is likely hard, etcetera, etcetera. So I'm excited to see if it performs as well as DevNotes performing locally. We will leave it there.
1:49:02I will see you guys tomorrow when I wake up after I see what it's done for us. Bye bye. Alright.
1:49:08New day, new me. We asked Devin to do a few changes while I was sleeping. It did it on the cloud.
1:49:14It created, I would assume, pull requests for us and it did the two issues that are assigned to it. It created two different PRs for. I would like to review these.
1:49:25Honestly, I'm might be some merge conflicts also. Which one should be merged first?
1:49:31Probably I mean, this one I want to test. Let me just do the UI changes for now.
1:49:35I'll keep the second one open for now. The front end UI and landing pages, I'm going to merge, pull locally and see what's up.
1:49:48Alright. Let's do a git pull.
1:50:01Cool. Let's do a rebuild. Probably only need the front end, but let me do both the front end and the back end.
1:50:09Let's start everything. Go to local is going five one seven three, I think, is where the front end is hosted. Alright.
1:50:17Can't say I love it. Yeah. The UI needs another, you know, other iteration for sure.
1:50:25Yeah. Because I love it. We we need to fix the UI a lot.
1:50:31It looks better than before, but I think the scope of improvement, I might have to, you know, get into slightly more spec driven development to finish this. That's the UI.
1:50:40The other PR was let's just try the other one as well. Curious to see if there are no merge conflicts, we'll load. If there are merge conflicts, there's not much we can do.
1:50:48I would assume there are merge conflicts because front end changes. Yeah.
1:50:53I'm gonna skip this one now. I will probably do another iteration on the front end right now, and then we'll go from there.
1:51:02Let me add 16. The front end looks very primitive and wide coded at the moment.
1:51:19Spend some time really finesse the UI so that it looks close to Higgs field dark mode everywhere.
1:51:32If I was a UI engineer, I would add so much context in here, which I can't because I'm not a UI engineer, but that really tells you, you know, expertise with AI is better than, you know, no expertise with AI. Implement at 16.
1:51:53So oh, there we go. Meanwhile, there is a file change.
1:51:58Oops. Daisy had it accepted.
1:52:03I don't know when this came or why this came. Probably because of something I did earlier, but we will come to it. Let's let it finish.
1:52:11Let's test the app. Let's go from there. Alright.
1:52:16It finished. Hoping for the best. Oh, it's a daisy.
1:52:20Let's see that.
1:52:26I should probably have hot reloading here. We're making a lot of changes, but nothing is restarting. So we should fix that.
1:52:39Refresh. Oh, yeah. Again, like, this is not great.
1:52:42We'll figure it out. I would I mean, not bad, honestly. But very shitey and, like, you know, you can tell Shared Shared Shared Shared Shared Shared Shared Yeah.
1:52:59Sort of. Cool. Should be fine.
1:53:03Yeah. I'll do a full I mean, there are a bunch of things that I understand, you know, the 20 times UI as much UI as so. I know.
1:53:10I try to add those, you know, based based on my expertise. But again, in the end at this point, I probably need a UI engineer who's really good, who can probably use any assistant or not to to make this, you know, premium.
1:53:20It doesn't look super premium to me right now. With that, what is the next big thing that is left?
1:53:26I need to test this as a user as well. So let me quickly what's the best way to do it? I guess I could just log out for now and sign in as a normal user.
1:53:41Cool. I'm a normal user now. I don't see admin.
1:53:43If I go to video image templates, that there's a template over here that I can see, and I would like to generate a video.
1:53:54Yeah. First, need to generate an avatar or create an avatar. Let me do that.
1:53:57I need a third person. Can't use someone popular. Let me see who's photo I have locally.
1:54:22Okay. I do have shakes photo, so let me use that.
1:54:33Cool. Let me call the avatar shake. Let me choose a file which will be on my desktop.
1:54:40There we go. One photo should be good enough, but let me add two shallow. Create avatar avatar has been created.
1:54:47This is a person. Now, let me go to the templates.
1:54:51Even I don't love this template. I don't wanna spend too much credits here but one try as a user and then we're good to go.
1:54:58Then we'll move on to, again, a bunch of parallel tasks. I will spin off a bunch of parallel tasks while I spend my time building the very first, you know, template for for this website.
1:55:11I'll probably spend a few hours on it, at least, you know, an hour or two. I don't know what audio I'll use. I don't know what video I'll use, but I'll spend like a few hours trying to build the first template, and then we'll try that.
1:55:24If that looks good to me is when I'll spend more time making more templates. That way, you know, you're as an engineer spending time on the product as well. This is like a very nuanced statement.
1:55:32The product is like a video product. So as a GTM engineer, you wouldn't be expected to do this. But since this is an niche that I sort of understand filmmaking, I'm going to spend my time not just engineering but building the product.
1:55:42While I ask Devin to parlay, you know, build features like implementing Razorpay, which is a more objective feature than something like UI, and hence, I don't really have to do it locally and retest it.
1:55:55It's a feature that if if it works, if it works, if it doesn't, you know, I'll be able to fix it. Let me ask you to do it. Can you fix the merge conflicts?
1:56:06They can tag them directly on the PR as well, but this should work. Alright. My videos processing.
1:56:16This pipeline is also not great of your notes. When you generate the video, you probably see something at the bottom right that shows you generating. And then when it generates, you should keep pulling it.
1:56:24When it generates, you see it over there. Bunch of UX changes, which ideally, if I really use buildings for it, I would offload at this point. Since, you know, I'm building it right now in front of you for this YouTube video, I'll probably do it myself.
1:56:40Cool. Does work as a user. Let me spawn a few tasks for Devin to fix on the fly.
1:56:45It seems like it updated the PR, which is great. I have a few more tasks for it to do.
1:56:53What else can I offload to the cloud agent? And then big features, not really.
1:57:04Oh, yeah. There's one very big task that's left, which ideally should be done locally only. I'm used to it locally.
1:57:10The Higgs field landing page if you've seen has a bunch of AI generated videos. You know, it looks something like this.
1:57:16It's pretty cool. I would like something similar, you know. I would like for some of these videos to appear on our website as well and you know a preview that looks like this.
1:57:25So you can see other people's videos or you know if an admin hit this with an admin videos. So this is the prompt that's made this video.
1:57:34We should probably scrape some of these and bring them locally, and I think this can be a long task that I can offload to Hicksville. So let me do that. Let's do it here.
1:57:44Let me create a new agent. Or I think I can just go to agent mode here somewhere.
1:57:52Oh, yeah. The okay. It's just the UI of the same thing.
1:57:54Never mind. Let me just do it here. The Hicks Field landing page looks amazing.
1:58:01It has a bunch of videos that let me just pull this on the left.
1:58:11Actually show the power of Higgs field.
1:58:18We should have something similar. Our landing page should just be a dump of videos generated via AI.
1:58:29Can you scrape the yeah. I should write this in a spec file.
1:58:32What am I doing? This is a big feature and less of a technical feature, more of a, you know, product feature.
1:58:4117 landing page videos.
1:58:46Empty. Their landing page get all the videos generated via models that we support, copy over their videos, prompts, model, etcetera, and show them on our website.
1:59:11That way, we don't have to spend credits in building cool videos for the landing page because Hicks field has already done it.
1:59:25Eventually, we'll we'll probably do it ourselves. But for now, you know, I it's it'll be a of money to spend to, you know, create these many videos. So I would like a landing page that looks like this.
1:59:33I would like videos that look like this. But I would not want to spend credits re rendering all of these videos, and hence, I'm asking AI to do it.
1:59:46The look, feel, and videos should be very similar.
1:59:53Scrape their page to understand this better. Alrighty.
2:00:00Let's implement that. Again, either is fine. You can do it here.
2:00:03You can do it inside the terminal. I'm just a terminal fan.
2:00:07So I'm going to a terminal fan. Pricing that up.
2:00:13I going to just you do it inside the terminal. Implement at the rate of 17 dash landing page.
2:00:18Beautiful. Cool. While that is working, let me spend some time building some of our own videos.
2:00:24I'm going to generate a template from scratch and you're probably going to see, let me just log in as a admin. You're probably going to see like a time lapse of this of me trying to build the very first template in like probably an hour and then we'll go from there.
2:00:39I think this is the admin ID. Alright. Cool.
2:00:43I'll see you in an hour after I'm finished building the very first template.
2:00:47One eternity later. Alrighty,
2:00:51folks. Welcome back. I spent almost two days building the rest of the things.
2:00:58Coding, it was easy. Building the product and the front end of things and the actual videos was hard.
2:01:06But let me show you what we have. This is not Hicksfield folks. This is actually our website and who's that?
2:01:13Oh my god. Look at him coming out of that car. Crazy.
2:01:16Face looks familiar? That's me. And I've literally created a full template.
2:01:21It took me like twenty four hours to do it for for building something like this. Now, anyone can come to this website, click on templates, select the template, change the avatar to have a whoever you want, click on generate video and it generates a video for you.
2:01:35For example, Hanzala is my editor and I generated a video for Hanzala over here.
2:01:42And now if you see who's coming out of the car is not me, but Hanzala, that's crazy.
2:01:48It took less takes less than $6 to render this to another video, by the way. The full video, you'll find him moving around him, you know, whatever, doing his thing, etcetera, etcetera.
2:01:59And let me share how how we build the templates. There are a bunch of changes I've added. So these are the currently available templates.
2:02:04Let me open the one which is the most difficult one. These are the two templates that I've added, the replaced by Modi template, and then replaced by me template.
2:02:15If you remember the way this happened was you can create a new template, select an avatar or two avatars if you want, but one is fine for now. Give it a name. For example, I might do it for a Britney Spears song next.
2:02:26Add some description to it. Select an avatar, probably a female, and then click on create an open editor. Before you do that, you should, of course, create avatars.
2:02:33For example, I have to create two avatars for myself and for my editor, one for Ishan Sir and one for the president or the prime minister, sorry, of the country. Once you do that, you reach a screen like this, which again we covered and now it looks a little prettier.
2:02:46And now it's your job to do all the heavy lifting, which I have done for this one video. Only the admins of the website can do it right now, but I can always hire a team who's, you know, constantly scouring music videos, bringing them over here.
2:02:58This is a slightly manual challenge at the moment, but I would hope over time it becomes less manual and, you know, AI can also replace some parts of it. The way this works is I import the audio over here by clicking on upload audio. I upload the original 200 video by clicking on upload video.
2:03:13So these two timelines are, you know, taken over by the original audio original video, and that is what you see until an editor comes and clearly says, this segment this segment that you see over here, which you can, you know, select more segments if you want, this segment needs a face swap.
2:03:30So what you can do is you can select a segment. When you select a segment, for example, this one right here, you write the prompt of what is happening in this three second, six second, five second video.
2:03:40You select a video model using which you want to finally generate the video. You select the duration, which track it will apply to. This is video track one, this is video track two.
2:03:49If you want, can add more video tracks. This is the video track three that I've added. You select a start frame and an end frame.
2:03:57In this case, I only selected an end frame. Sorry. This is the start frame and this is the end frame.
2:04:01This is the start frame. This is what the final video should start from. This is the end frame and notice there is an using over here.
2:04:08How do you select start frames and end frames? You know, you can just go to that specific screenshot or the timestamp here and click on start frame.
2:04:15When I do, this specific sections start frame will become this. And if I could go to the end, I can click on end frame.
2:04:22This specific sections end frame becomes this. So I have a start frame. I have an end frame.
2:04:27I have a checkbox in which I've said this second frame, the end frame needs to have a face swap with the Avatar that I selected when creating this template. So the second frame will get face swap and this is what the second face swap thing looks like and notice that looks sort of like me. The first frame did not have a face swap and hence if I select the look at the first frame, there's no real face swap that happened.
2:04:48The first frame also looks swapped over there because I might have taken check over here, but you probably shouldn't swap here otherwise even the swap was added. So if you look at it, this person probably now looks like me, which is bad.
2:04:58There should not be a face swap on the first one. That is why I've not ticked this. If I take this, it'll look bad.
2:05:03I will become the second person also. So you know, this person this person will both become me. I only want this guy to be me.
2:05:10You can also select which model you want to do, use for the face swap. This runs locally, works really well. Problem is, this doesn't change the facial structures too much.
2:05:18So notice I have the same beard as Ranveer over here or Ranveer over here. If I want my full face, then you need a different model. I'll show you that as well.
2:05:26But there are many face swap models that are available over here. One is free because you can run it locally. The others are expensive, not very expensive, but you know, again, you have to pay up.
2:05:34All of these are available via open router. You click on bake or rebake to actually bake that video, which basically means this video will get baked with her key at start frame, her key at end frame, and that is how this specific section was created.
2:05:48I went through the whole process of creating all of these sections myself. Whatever Anvil was appearing, I replaced it with myself. For example, this last one, I moved it a little bit and moved back here.
2:06:00I created a six second frame where I set the start frame and end frame where I selected face swap for the start frame and the end frame. So this is what the start frame finally looks like. That's me over here.
2:06:09This is what the end frame looks like. That is also me over here. And then I generated a video.
2:06:15So the final video generation model only has frame one and frame two. But they're so good that, you know, in the end of final video that is generated looks very close to the original render video. That's pretty much it.
2:06:27You do a lot of heavy lifting of doing this. You finally render and export the video with a thumbnail, you know, prompt so that there's a thumbnail to this template as well and then it appears over here in the template section.
2:06:38Anyone can now come. Click on this template, select an avatar of theirs, click on generate video, and we generate a video for them. For example, for Hanzala as I showed you, you know, this specific render was created.
2:06:50And if you look at it, you'll see the actor has been replaced with Hanzala and not myself. So anyone can come and generate these templates. The users don't see the admin section.
2:06:59They simply see the template section. They can generate as many renders as they want. Each render over here will be very expensive because, you know, every render of a full video is actually a bunch of small videos and face swaps we have to do, which are expensive for us.
2:07:12Overall, this video takes like $67. It's not very expensive. You can charge the end user like $10 for it.
2:07:16I would hope people will be willing to pay $10 for a video like this. But in a full run of song, they have been replaced. That's the most complicated part of it other than that.
2:07:24It's pretty standard. Avatar, images, video. The UI looks almost the same as XField.
2:07:29If you open it, you'll see an definitely like this models are really good. I gave it literal screenshots. Nothing else.
2:07:34I gave it a screenshot of XField. Was able to copy it end to end. I had to go a little slow.
2:07:38I had to go, you know, step by step. First, this, then create this, then create this. I was able to do it well.
2:07:43I took up a bunch of prompts from XField for now and regenerated all those videos, and, you know, those are what appear on this wall. And this is the second video which is the Karanosla video. I've not completed it, but this is what it looks like.
2:07:54And, you know, just to show a little bit of a transition, what I've done is this is what the video looks like if you use face fusion, which is the local model that we have. Notice it retains the original Karanosla features, Put Smoothie on top, so it doesn't look great.
2:08:07It looked okay for the run that makes sense. For the run that over here, a different reader model makes sense. Now that looks like mister Modi.
2:08:12Problem is that colors are a little off, so you have to find a a middle ground round over here. But the second model is so good that notice the swap happens really well. In fact, the quality of the audio image also gets increased.
2:08:24So what I've done over here is, I have the final video model. I have the duration. I have the avatar.
2:08:29I have a start frame. I have an end frame. And I've face for both of them using the Black Forest flux two model, which is a paid model, which actually replaces the faces with, you know, with the features.
2:08:40That's full Modigi compared to this was like partial Modigi, partial Karan Oshla. So in this specific video, this makes more sense.
2:08:48So this is what you should use. But again, you look at the transition, it's so smooth that it literally feels like, you know. It's very easy to replace a person with the other person over here.
2:08:58It's pretty much it. I've not put in too much efforts over here, but you got this video also. Over time, you should put in efforts to replace the whole video.
2:09:06Ideally, I would just have for this. This is a manual process unfortunately right now. I can think of a few ways to automate it, but it's manual for now.
2:09:13That covers templates which I've built. Everything has been a single prompt that I've dumped into a spec file. So if you want, in the end, there are 20 spec files.
2:09:21If you run all of them together, you'll probably use the same product. So everything has been documented for agents in the future. Last thing added was payments.
2:09:28Again, just give it, hold it, add a credit system, make sure they're profitable and that's it. It generated three plans, probably closer to Hicksfield, you get a bunch of credits. Everything that you do, generating a video, generating an image, generating a template has certain credits.
2:09:42Generic a template is much more expensive compared to generating a video, which is cheaper. The image is cheaper. Video is really expensive.
2:09:48Ideally, this should be model based. You know, this model should be little more expensive. This model should be a little bit cheaper depending on what the open router pricing is.
2:09:54But right now, just kept it constant. You can see all the history of images that you've created or videos that you've created over here. For example, this is a video on X field.
2:10:01This is the prompt for it. I generated it directly over here. This is a video audio.
2:10:06These are a bunch of images that I've created in the past. Person one person to GPT image two, etcetera, etcetera. And the again, the UI part, the credits system were little one shots.
2:10:19The only difficult bit here was this. I probably had the longest conversation with the LLM building this the timeline, the video features.
2:10:28It was a very novel sort of a product. And hence, you know, this involved a lot of back and forth and probably, like, six, seven hours of back and forth with Devon.
2:10:36Everything else is much smaller. And, again, it took me a lot of time to build the specific template. The last thing I mean, recently bought domain as well for this.
2:10:44I asked Claude, and this one was available. So I've bought pixovid.com.
2:10:50I'm gonna deploy this there. Already deployed it again, which was one shot. I already have a skill for this to deploy applications to my infrastructure.
2:10:57So this is a one shot of deploying this application on my DigitalOcean Kubernetes cluster. The architecture now looks something like this.
2:11:07Is a front end hosted on digital ocean. There is a back end hosted on digital ocean. There is a razor that we talk to for payments.
2:11:12There is a database self hosted on my Kubernetes cluster. Open router, have an API key. Have $50 in it.
2:11:19For production, I use digital ocean spaces as a CDN object store. For local, you can use MinIO, which is free. And the phase swap that we use, the fusion phase fusion model, I have hosted on a separate heavy machine because I can't I don't want to put this in my Kubernetes cluster.
2:11:34It'll start to affect other services. There are ways to optimize that. But for now, I have a separate machine in my infrastructure.
2:11:40Let me show you. Which simply hosts the face vision model, which is the slightly harder only model that we're self hosting.
2:11:49Everything else, we depend on open router. One face vision model we self host.
2:11:54Open router doesn't have face vision. And also since it's not free, this is a very expensive machine. But still, I think if there is a lot of users, it will be free in the long run or cheaper in the long run to just pay $96 for a droplet over here.
2:12:05Face fusion is hosted over here. Everything else is posted in a Kubernetes cluster. Cool.
2:12:10The last thing is left. Believe it or not, a lot of my deployment also happens via Devin. So I'm going to ask you to do the one last thing in front of you, which is going to be change the name of the app to let's call it what domain name did I buy?
2:12:26Pixovid. Also deploy it on pixovid.com.
2:12:32I'll set up the DNS. Please provide the IP.
2:12:37I already know the IP, but I'll ask it. Maybe it's aware. It'll probably take the human disclosure to find the IP of the load balancer.
2:12:46Okay. Starting from scratch now because it's like a fresh conversation.
2:12:51Let me just open Squarespace. This is a new domain that I just bought. I'll go to the DNS section.
2:12:55I will delete the A records that already exist to the Squarespace defaults. And I'm going to add my own set of things here.
2:13:14We we I don't know what I did. But I deleted this. I was supposed to leave this.
2:13:19I don't know. Hopefully, it still works. The root domain that is pixovid.com should point to it is not telling me, so I'll just check.
2:13:29K get ingress dash in 100 x devs.
2:13:38This one might be it. I think this is it.
2:13:43I can also ping video.hundredxdevs.com where I hosted it right now.
2:13:47It's just it'll be the same IP, which is this one right here. It's already hosted. Only it's hosted on a weird sub domain right now.
2:13:53I want it to be hosted on Pixovid. And notice, you know, I just told the other one thing and it'll already automatically go into my Kubernetes config and start to replace it.
2:14:03I also hope yeah. There you go.
2:14:06That's the IP it gave me as well. It also changes everything in the front end. Right?
2:14:09Front end should say pixel with now rather than saying what was it? Video arena which is like a random placeholder that I put.
2:14:17In production, I have four ninety four credits. Razorpay works. I just have my demo queue over there, but I'll replace it by the time this video comes with the production.
2:14:27So you can test it. You can pay for it. You can generate the Duranda template if you want.
2:14:31Let me get the Razorpay test cards, which is this one right here.
2:14:42Pay for it.
2:14:49Continue. Right now production has we will see Daisy.
2:14:55Right now production has dummy credentials or dummy Razorpay. But by the time this video comes, it will be real API credentials.
2:15:04This is what it looks like if you use Razorpay in test mode. It just tells you, do you want this transaction to fail or succeed?
2:15:10I want it to succeed. And so right now, anyone can go to the website and give themselves credits. By the time you guys see the video, it'll be production keys.
2:15:16You'll actually have to pay via a real card or pay via UPI. Now if you go back to the original page, you will have more credits. For example, now I have 2,600 credits.
2:15:26I can do whatever I want. I can generate a template. There are two templates available.
2:15:30I can, you know, put myself here. I don't know if I have avatars, but there's a oh, there's a what?
2:15:36Never mind. There's an avatar here of a friend. I can use that or I can generate videos.
2:15:42I can generate images. I can do whatever I want. So let me just try to generate a video and let me get a prompt from HixSuite and let's see do we get a similar video or not.
2:15:49Let's click on one of these videos. That one looks fancy. Let me copy the whole thing.
2:15:55That's a lot of things. And hopefully, we get like a similar video from our website also. I'm not adding any references, start frames, end frames.
2:16:04I have turned on audio. Let me select like a decent model. V o three pro will be really expensive.
2:16:12This will be like a two centimeter will be like, I would assume, $1 or something like that. And on the website, it's 60 credits.
2:16:19So if I generate this, my credits will decrease. And it failed. Prompt let's switch maximum allowed length.
2:16:26That makes sense. Let me make it a little smaller. I don't know if this is like a back end restriction or an open router restriction.
2:16:32I would assume open router. This is like an open router restriction, which I'm sure there's a way to get around, but I made the thing smaller.
2:16:39And now hopefully, it works. We should add these violations in the back end, by the way.
2:16:44So, you know, still a little rough around the edges. Let's wait for it to generate.
2:16:51Alright. This is the video that it generated. Looks similar.
2:16:56This already generated. This what had. It's a little different.
2:17:00Oh, yeah. But it is red eventually. It's like a fifteen second video.
2:17:03I was just smaller. If you use the same model, see dance two. We probably would have gotten the same output.
2:17:08But, yeah, we use a different model. So this what it looks like. Cool.
2:17:12You generate videos. Your credits will, you know, get decreased if you do that. Same as true for images.
2:17:16Same as true for templates if you want to really get ambitious and, you know, generate a template for yourself. Let's see if Devin finished.
2:17:26I did not need to move the back end, but so let me move the back end. Should the existing keep working, keep both working is fine. This is a problem.
2:17:34Razor will not work on the new website, will it? I have not approved that domain, but I'll get it approved. How deep should the rename go?
2:17:41User branding only plus infra no. User branding is good enough.
2:17:47Let me replace this to my support email. And that's good to go.
2:17:53A few moments later.
2:17:55Alright. Devin is done. The only extra thing I had to do was create secrets that you'll see.
2:18:02So hopefully, these are blurred in the video, but I had to create new auth secrets with new redirect URLs, uh, for the new website. Other than that, the website is now live on pixel.com.
2:18:12You can sign up. You can sign in. You can buy some credits.
2:18:15You can generate videos. You can generate images. You can generate templates.
2:18:17You can put avatars. Hopefully, this was an insightful video. Hopefully, you learned something new.
2:18:22Biggest learning is it took me like three days of cognitive abilities to build this up. So if you are a decent or above, you know, above average engineer, you can now move really fast in building products. A little bit of finesse, a little bit of technical understanding, you know, some specific challenges I navigated myself, which I'm sure, yeah, I would have been able to do as well, but I just feel more confident.
2:18:42If I was writing the same code in Rust or Golang or Ruby on Rails, I wouldn't feel as confident as in typescript because I have expertise in typescript. But I do feel AI makes a good engineer much better, and a good engineer can still execute much faster, much better if compared to a bad engineer, someone who's just starting to code.
2:19:01I would almost assume any company that you're going to join, you're going to use coding assistance heavily because you can't really compete with someone else who is using them. And hence, a lifestyle you probably want to get used to sooner than later.
2:19:14The product is live. The code is open source. Feel free to self host.
2:19:17Feel free to use it. That's all I had for this one. I'll see you guys in the next one.
2:19:21Bye bye.
The Hook

The bait, then the rug-pull.

The title promises two hours; the honest answer, delivered at the end, is three days of thinking and roughly twenty spec files. What sits between is a live demonstration of a claim the presenter states up front — that almost any app without a real moat is now cloneable — carried out against a startup that reached $200M in annual revenue in under nine months.

Frameworks

Named ideas worth stealing.

27:19concept

Spec-driven development loop

Describe each feature in a markdown spec, have the agent implement it, then make the agent write its decisions into a new numbered spec. Roughly 20 specs later, running them all in order reproduces the whole product.

Steal forany agent-built codebase you want to stay self-documenting
01:00concept

Distillation of moat-less apps

Any website or app that lacks a specific technical moat can be cloned and 'distilled' with today's coding agents; the defensible value shifts to product, taste, and content.

Steal fordeciding what's actually worth building versus cloning
10:31model

Outsourced-AI SaaS architecture

  1. React front end
  2. TypeScript + Express back end (CRUD)
  3. Postgres + Prisma
  4. MinIO object store
  5. Self-hosted FaceFusion
  6. OpenRouter model routing

Because the AI layer is a single external API call, the app's own architecture collapses to standard CRUD, a database, and object storage — the hard part is the front end.

Steal forany wrapper product built on hosted models
55:44concept

Stitch short clips into long video

Since video models cap at 5-10 seconds, a long video is many timestamped blocks on a timeline. Each block sets its own prompt, model, duration, and start/end frames, with optional face swaps on those frames before generation.

Steal forany multi-minute AI video pipeline
08:00concept

Engineer as orchestrator

The engineer barely writes code; they orchestrate the agent, answer its architecture questions, debug the hard bugs manually, and own judgment calls the agent can't make.

Steal forreframing your own role in an agent-heavy workflow
CTA Breakdown

How they asked for the click.

VERBAL ASK
2:18:00product
The product is live. The code is open source. Feel free to self host. Feel free to use it.

Soft, credibility-first close — points to a real shipped product (pixovid.com) and an open-source repo rather than a hard sell; the Devin sponsorship is front-loaded at the open.

Storyboard

Visual structure at a glance.

pitch
hookpitch00:00
the clone UI
promisethe clone UI06:05
architecture
valuearchitecture10:31
spec files
valuespec files27:19
timeline editor
valuetimeline editor55:44
cloud agents
valuecloud agents1:43:18
payments + deploy
ctapayments + deploy2:07:52
Frame Gallery

Visual moments.

Chat about this