Skip to main content
HW88
  • Our StoryTeamFounder
  • Ventures
  • Learn
  • CapabilitiesBuild PodsEngagement
  • Insights
  • Case Studies
  • Our StoryTeamFounder
  • Ventures
  • Learn
  • CapabilitiesBuild PodsEngagement
  • Insights
  • Case Studies
  • Contact
HavenWizards88

Venture Studio for high-stakes founders. We build and automate entire ecosystems for global scale.

Company

  • About Us
  • Team
  • Ventures
  • Case Studies
  • Learn
  • Insights
  • Media
  • Build Log

Services

  • Capabilities
  • Build Pods
  • Strategic Advisory
  • Technology Development
  • Growth Acceleration
  • FAQ

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 HavenWizards 88 Ventures OPC. All rights reserved.

Makati City, Philippines

←Back to Build LogBUILD LOG

How We Built the Content Automation Pipeline in 3 Weeks

Built a full video-to-social content engine: n8n orchestration, Remotion rendering, edge-tts narration, DigitalOcean deployment. 6 scenes rendered in 6.7 seconds. 4 platforms publishing daily. Lessons from 3 failed TTS engines.

D
Diosh Lequiron, PD-SML, PhD, MBA, CSM
April 15, 2026 · 2 min read
#content-engine#n8n#remotion#tts#automation#video
Share

We needed a content engine that could produce, render, and publish video content daily — without a production team. Three weeks, one droplet, and several failed approaches later, here is what we shipped.

The Architecture

The pipeline has four layers:

  1. Orchestration (n8n) — Schedules content generation, calls the render pipeline, manages publishing queues across platforms
  2. Rendering (Remotion) — Converts structured JSON scenes into MP4 video with per-scene images, text overlays, and voiceover sync
  3. Narration (edge-tts) — Microsoft Neural TTS via free cloud API — generates 6 scenes in 6.7 seconds on a 2vCPU droplet
  4. Publishing — Cross-platform distribution to Facebook, Instagram, Threads, and LinkedIn with platform-specific format enforcement

What Failed First

We tried F5-TTS first. It worked at import level. It took more than 7 minutes to generate 4 seconds of speech on our 2vCPU/4GB droplet. Transformer-based TTS without GPU acceleration is effectively unusable for a daily content pipeline. The lesson: benchmark on target hardware before committing.

Scene Duration Discipline

Every scene duration must match actual voiceover length plus a 1-second buffer. Fixed durations cause voice cutoff. We measure each voiceover with ffprobe and set scene duration to VO length plus 1 to 1.5 seconds.

Platform Compatibility Matrix

Instagram Reels has a 90-second maximum and requires 9:16 aspect ratio. Threads allows up to 5 minutes. LinkedIn allows up to 10 minutes. We built isPlatformCompatible() as a gate that runs before every publish attempt.

Where It Is Now

The engine runs daily on a DigitalOcean droplet via PM2. Content is deduped by SHA-1 content hash — not just by media URL — to prevent text posts from republishing the same content across cycles.

D

Diosh Lequiron, PD-SML, PhD, MBA, CSM

President & CEO, HavenWizards 88 Ventures

Building arena-forged execution systems and deploying governed Filipino talent across multiple venture lines. Every build log entry comes from real operations, not theory.

More from the Build Log

Reflect

Reflecting on Batch 2: When Velocity and Quality Diverge

Batch 2 produced 10 articles in under 2 weeks. Mid-month audit found fabricated metrics in 4 of them. Every round-number statistic was invented. We rewrote all 14 published articles before any new content shipped. Velocity without editorial gates is marketing theater, not content infrastructure.

May 2, 2026 · 1 min read
Ship

What We Shipped in April 2026

10 SEO articles published and rewritten to brand standards. 1 Google indexing crisis identified and fixed — root cause: await headers() in root layout cascading dynamic rendering to every page. Cache-Control went from private no-store to public for 100+ pages.

May 1, 2026 · 1 min read
Learn

The GSC Indexing Crisis: What await headers() Does to Your Entire Site

await headers() in the root layout forced every page into dynamic rendering. Next.js responded with Cache-Control: private, no-store. Google read private as personalized content and stopped indexing. 100+ pages crawlable, 1 indexed.

Apr 28, 2026 · 1 min read