Adstacker: AI Video Ad Generator
An AI-powered SaaS that transforms a single video upload into hundreds of branded ad variations — coordinated across a Next.js Web App, an Admin Dashboard, a NestJS API, a Remotion render service, and a BullMQ generation worker. Drives automated combination generation, GPU-accelerated rendering, multi-style subtitles, real-time WebSocket progress, and Stripe-powered subscription billing.

Key Features
Development Highlights
Technology Stack
Our Contribution
Backend Architecture
Architected the full NestJS backend from scratch — Mongoose schemas, modular CRUD APIs, DTO validation, and the mapping layer translating frontend flat arrays into backend embedded documents.
Combination Engine
Built the combination calculator engine that enumerates all valid Hook x Body x CTA x Subtitle permutations and enqueues each as an independent BullMQ job.
Video Rendering Pipeline
Developed the Remotion compositions (VideoComposition, HookOverlay, BodyOverlay, CtaOverlay) with 6 animation types and bundled them at server startup for fast job execution.
Generation Worker
Implemented the BullMQ generation processor: S3 download, Remotion renderMedia(), FFmpeg encoding optimization, thumbnail generation, S3 upload, and DB update, with error handling and retries.
Subtitle System
Built 6 subtitle rendering styles in SubtitleRenderer.tsx covering Hormozi, Abdal, MrBeast, GaryVee, TikTok Viral, and Clean Corporate across all 4 aspect ratios.
Real-Time Progress
Integrated the WebSocket gateway for real-time generation progress with SSE fallback, enabling live job status updates on the frontend without polling.
Billing Integration
Implemented the full Stripe subscription lifecycle — checkout sessions, billing portal, webhook handler with raw body and signature verification, credit allocation on subscription, and monthly credit reset cron.
Share & Download System
Built the share and download system — nanoid-based shareable tokens, public S3 signed URL access without auth, link revocation, and Content-Disposition download headers.
Admin Module
Developed the admin module with MongoDB aggregation pipelines for dashboard analytics, time-series chart data, user management, and subscription administration.
Full Integration
Led full frontend-backend integration across the user app and admin panel — replaced all mock stores with live API calls, wired up WebSocket progress, and validated the complete user journey end-to-end.
Results
What Makes This Special
Transforms a single video upload into hundreds of branded ad variations through automated combination generation, GPU-accelerated rendering, and multi-style subtitle support — purpose-built for performance marketers.
Frequently Asked Questions
MicrocosmWorks built the combination calculator engine that computes the Cartesian product of all Hook x Body x CTA x Subtitle permutations. Each input element (hooks, body segments, CTAs) is defined by the user, and the engine enumerates every valid combination, then enqueues each as an independent BullMQ job. This approach means a video with 5 hooks, 3 bodies, 4 CTAs, and 6 subtitle styles generates 360 unique ad variations automatically.
MicrocosmWorks implemented 6 subtitle rendering styles in Adstacker: Hormozi, MrBeast, GaryVee, Abdal, TikTok Viral, and Clean Corporate. Each style has distinct font, color, animation, and positioning characteristics matching the popular creator formats that performance marketers recognize. The SubtitleRenderer handles all 4 aspect ratios (9:16, 16:9, 1:1, 4:5) and 6 animation types (fade, slide-up, slide-down, scale, typewriter, bounce) within Remotion compositions.
MicrocosmWorks built the rendering pipeline using Remotion compositions bundled at server startup for fast job execution, combined with FFmpeg for encoding optimization. BullMQ manages the async job queue with configurable concurrency control, so multiple variations render in parallel across available GPU resources. Each job handles the full pipeline: S3 download, Remotion renderMedia, FFmpeg encoding, thumbnail generation, S3 upload, and database update, with error handling and automatic retries.
MicrocosmWorks integrated a WebSocket gateway that pushes real-time generation progress for every queued variation to the frontend, with SSE (Server-Sent Events) fallback for environments where WebSocket connections are unavailable. Users see live status updates for each variation including queued, processing, rendering percentage, and completed states. This eliminates the need for polling and provides immediate feedback on the generation pipeline status.
MicrocosmWorks implemented Stripe subscription billing with webhook-driven credit allocation. When a user subscribes or renews, the webhook handler allocates generation credits based on their plan tier. Each video variation generation consumes one credit, and a monthly cron job resets credit balances. The admin dashboard provides MongoDB aggregation analytics showing credit usage patterns, subscription revenue, and per-user consumption to inform pricing decisions.
Have a Similar Project in Mind?
Let's discuss how we can help you achieve similar results.















