<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pritesh</title>
    <description>The latest articles on DEV Community by Pritesh (@mannpriteshh).</description>
    <link>https://dev.to/mannpriteshh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3947069%2F29857453-7967-4030-b5d0-c90f65fece80.jpg</url>
      <title>DEV Community: Pritesh</title>
      <link>https://dev.to/mannpriteshh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mannpriteshh"/>
    <language>en</language>
    <item>
      <title>I built an AI faceless video generator in 2 months — here's the stack</title>
      <dc:creator>Pritesh</dc:creator>
      <pubDate>Sat, 23 May 2026 04:39:16 +0000</pubDate>
      <link>https://dev.to/mannpriteshh/i-built-an-ai-faceless-video-generator-in-2-months-heres-the-stack-266h</link>
      <guid>https://dev.to/mannpriteshh/i-built-an-ai-faceless-video-generator-in-2-months-heres-the-stack-266h</guid>
      <description>&lt;p&gt;Six months ago I started &lt;strong&gt;Keyvello&lt;/strong&gt; (&lt;a href="https://www.keyvello.com" rel="noopener noreferrer"&gt;keyvello.com&lt;/a&gt;) — an AI video generator that turns a prompt into a complete short-form video in 2–5 minutes. Here's the technical breakdown for fellow builders.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Faceless creators on TikTok / YouTube Shorts / Reels spend 2–4 hours per video on scripting, voiceovers, B-roll, captions, and editing. Most burn out before they post 10 videos.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Next.js 16, React 19, TypeScript, Tailwind CSS 4, Radix UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Next.js API Routes (App Router)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DB&lt;/strong&gt;: Supabase (Postgres + Auth + RLS)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI&lt;/strong&gt;: GPT-5.5 for scripts, Fal.ai  for images, ElevenLabs for voices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video&lt;/strong&gt;: FFmpeg via &lt;code&gt;fluent-ffmpeg&lt;/code&gt;, Sharp for image processing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage&lt;/strong&gt;: Cloudflare R2 (S3-compatible)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payments&lt;/strong&gt;: Dodo Payments&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compute&lt;/strong&gt;: Vercel for the app, Modal for the video pipelines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State&lt;/strong&gt;: Zustand&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The pipeline
&lt;/h2&gt;

&lt;p&gt;prompt → GPT-4o script → scene splitter → parallel(Flux images + ElevenLabs audio) → FFmpeg composition (Modal) → R2 upload → status update&lt;/p&gt;

&lt;h2&gt;
  
  
  What surprised me
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Modal beats running FFmpeg in Vercel.&lt;/strong&gt; Cold starts on Vercel functions made 60s+ videos impossible. Modal webhooks solved it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RLS is non-negotiable from day one.&lt;/strong&gt; Retro-fitting row-level security at 1K users is painful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credit refunds need their own RPC.&lt;/strong&gt; I hit a silent failure with &lt;code&gt;increment_user_credits&lt;/code&gt; getting blocked by a trigger. Use &lt;code&gt;add_credits&lt;/code&gt; instead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Users want templates, not raw control.&lt;/strong&gt; I shipped a "blank canvas" mode early. Nobody used it. The 11 named templates (AI Stories, Fake Texts, Stick Animation, etc.) do 95% of generations.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Better lipsync for the talking-avatar templates. Tighter cost controls per template tier. Affiliate program.&lt;/p&gt;

&lt;p&gt;If you're building something in AI video, would love to compare notes — drop a comment.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nextjs</category>
      <category>saas</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
