Vibe Coding Part 2: AI Video Pipelines, 25 Blog Posts, and the Infrastructure Nobody Warns You About

Where We Left Off
In Part 1, we covered the stack, the design system, and how to ship a production e-commerce site in a weekend with AI. That was the "what." This is the "what happened next" — the part where you try to add AI-generated video, automate an entire blog, and discover that your GPU has opinions about your ambitions.
This is the real journey. Not the polished version. The one where things break, you hit hardware limits, and you have to improvise.
The Video Pipeline: From Idea to 3 Languages
We wanted to create a motivational brand video for SAVAH — something cinematic, multilingual, and AI-generated. The plan was simple: generate scene images with AI, add Ken Burns motion, overlay voiceovers in Spanish, Arabic, and English, and burn animated subtitles.
The execution was anything but simple.
Step 1: AI Image Generation with NVIDIA NIM
We discovered that NVIDIA offers free access to flux.1-dev through their NIM API. No cost. No credit card. Just an API key and a prompt.
We generated 10 scene images — each with a specific prompt for cinematic quality, warm lighting, and SAVAH brand aesthetics:
- Scene 01: Sunrise over Moroccan medina, golden hour
- Scene 02: Artisan hands weaving colorful fabric
- Scene 03: Modern woman reviewing products on tablet
- Scene 04: Warehouse with organized premium products
- Scene 05: Customer receiving package at doorstep
- Scenes 06-10: Product close-ups, lifestyle shots, brand moments
Key insight: flux.1-dev generates 1024x768 images at zero cost. We tested 3 different API keys and all worked. The quality is production-ready for web and social media.
Step 2: Ken Burns Effect (Without Expensive Software)
Static images feel dead in video. The Ken Burns effect — slow zoom and pan — brings them to life. We wrote a Python script that:
- Reads each 1024x768 image
- Randomly selects zoom-in or zoom-out direction
- Applies smooth easing (cubic interpolation)
- Outputs 1080x1920 vertical clips at 8 seconds each
The entire pipeline runs in under 2 minutes on a laptop with a GTX 1650. No cloud compute needed.
Step 3: Voiceovers in 3 Languages
We used Edge TTS — Microsoft's free text-to-speech engine — to generate voiceovers:
- Spanish: es-MX-DaliaNeural (warm, natural Mexican Spanish)
- Arabic: ar-AE-HamdanNeural (clear Gulf Arabic)
- English: en-US-GuyNeural (confident, professional)
Each voiceover costs $0.00. The quality is shockingly good — you'd swear it was a professional voice actor.
Step 4: Animated ASS Subtitles
This is where it gets technical. We created ASS (Advanced SubStation Alpha) subtitle files with:
- Keyword highlighting: Brand words in blue (#0000D6FF) with scale animations
- Karaoke timing: Words appear syllable-by-syllable in sync with audio
- Centered positioning: MarginV=350 for optimal vertical centering
- 3 languages: Each with native script, proper RTL for Arabic
The subtitle rendering uses ffmpeg's ass filter with GPU acceleration. Total render time for a 76-second video: about 45 seconds.
Step 5: Audio Denoising
The original audio had background noise. We applied a 3-pass professional denoise pipeline:
afftdn(nf=-30)— FFT-based noise reductionanlmdn(s=7)— Non-local means denoisingafftdn(nf=-35)— Second pass for residual noisedynaudnorm(p=0.9)— Dynamic audio normalizationvolume=1.8— Final gain boost
The result: clean, broadcast-quality audio from a phone recording.
The GPU Reality Check
Here's the part nobody talks about in vibe coding tutorials: hardware limits are real.
We wanted to use Wan 2.1/2.2 (text-to-video model) for AI-generated video clips. The results look incredible — realistic motion, cinematic quality, no stock footage needed.
But Wan 2.2 Animate-2-14B needs 24GB of VRAM. We have 4GB (GTX 1650). That's not a software problem you can vibe code around. It's physics.
Our workaround: Generate high-quality still images with flux.1-dev (free, runs on NVIDIA's cloud), then animate them with Ken Burns. The result is 90% as good as full AI video, at 0% of the compute cost.
This is vibe coding reality: you don't always get what you want. You get what works.
Blog Automation: 25 Posts in One Session
The blog needed content — real, useful, SEO-optimized content. Not AI slop. Not filler. Posts that actually help people and rank in search.
We built a blog automation pipeline that:
- Researches topics based on what real customers in Saudi Arabia, Qatar, and Kuwait are searching for
- Generates structured content with proper H2/H3 hierarchy, internal links, and product references
- Creates meta data — title tags, descriptions, canonical URLs, JSON-LD BlogPosting schema
- Generates hero images with flux.1-dev (each image matches the post topic)
- Seeds everything into the database via TypeScript seed scripts
The result: 25 published posts covering topics from "Halal Beauty Moroccan Skincare" to "Best Budget Electronics for Students in Saudi Arabia." Each with:
- Proper meta title (under 60 characters)
- Meta description (under 160 characters)
- JSON-LD structured data for Google
- Canonical URLs
- Topic-relevant hero images
- Internal links to products
The SEO Rules We Follow
Every blog post follows strict rules:
- No fake prices. If we reference a product, we use the real price from our database
- No invented claims. "Trending in Saudi Arabia" means we verified it with search data
- Real product images only. Featured images use actual products from our catalog, never stock photos with people
- Power words, not spam words. We say "oferta" not "descuento," "oportunidad limitada" not "promoción"
Infrastructure: The Stuff That Actually Matters
Here's what most vibe coding posts skip: the infrastructure that keeps a real site running.
Process Management with PM2
The Next.js app runs as a PM2 process with auto-restart on crash. The startup script handles quoted paths (our project lives on an external USB drive — yes, really). PM2 save preserves the process list across reboots.
Cloudflare Tunnel
No exposed ports. No SSL certificates to manage. Cloudflare Tunnel routes traffic from SAVAH.us to our local server through an encrypted tunnel. The gotcha: if the tunnel token gets invalidated, the entire site goes down. We documented the recovery process in our wiki.
Database Management
PostgreSQL with Prisma ORM. The schema has 15+ models including User, Product, BlogPost, Order, Review, WishlistItem, AnalyticsEvent, and more. Every migration is type-safe. Every query is validated at build time.
The USB Drive Reality
Our production environment runs from an external USB drive. Not by choice — by necessity. The original 50GB project was trimmed to 37MB of source code, and the full deployment lives on NTFS storage. This means:
- PM2 start scripts need quoted paths
- File operations are slower than SSD
- The drive must be mounted before PM2 starts
- We backup everything to the internal drive
This is vibe coding infrastructure: it doesn't have to be pretty. It has to work.
The Numbers
After weeks of vibe coding with AI, here's where SAVAH stands:
- 468 source files (TypeScript/TSX)
- 42 products in the catalog
- 25 blog posts published
- 4 languages supported (English, Spanish, Arabic, Portuguese)
- 3 video versions generated (ES, AR, EN)
- 10 AI-generated images for the video pipeline
- $0.00 spent on AI image generation (NVIDIA NIM free tier)
- $0.00 spent on voiceovers (Edge TTS free tier)
What We'd Do Differently
- Start the wiki earlier. We lost time re-discovering things we'd already figured out. A wiki captures knowledge once.
- Test GPU requirements before committing to a model. We spent hours setting up Wan 2.2 before discovering our GPU couldn't run it.
- Automate the deploy pipeline earlier. Manual copies between
public/and.next/standalone/public/are error-prone. - Set up PM2 auto-start from day one. It took 3 weeks before we configured
pm2 save.
The Vibe Coding Mindset
Vibe coding isn't about being lazy. It's about being strategic. You use AI to handle the repetitive parts — generating boilerplate, creating content, producing media — while you focus on the decisions that matter:
- What products should we sell?
- What's the right price?
- What does the customer actually need?
- What's the design system that makes everything consistent?
The AI doesn't make these decisions. You do. The AI just executes faster than you could alone.
What's Next
We're continuing to build SAVAH with AI. The next milestones:
- Vendor onboarding — letting real sellers list products
- AI-powered product descriptions — auto-generating multilingual copy from supplier data
- Video ads at scale — automating the video pipeline for product promotions
- Community board — letting customers vote on which products to stock next
Every feature is vibe coded. Every post is AI-assisted. Every decision is human.
Start Your Own Journey
If you're thinking about vibe coding — building real products with AI — here's our advice:
- Start with one feature. Don't try to build everything at once.
- Use free tiers. NVIDIA NIM, Edge Vercel, PostgreSQL — you can build a production site for nearly nothing.
- Document everything. Your future self will thank you.
- Accept hardware limits. Work around them. The workaround is often better than the original plan.
- Ship early. A live site teaches you more than a local project ever will.
SAVAH is proof that one person with AI can build what used to take a team of ten. The tools are free. The knowledge is public. The only thing missing is you.
Welcome to vibe coding. Build better. Ship faster. Learn constantly.


