Summary
AdReel turns two photos, a product and a model, into a UGC-style ad. AI composes them into a single lifestyle image, then generates a 5 to 8 second vertical video from that image. It ships with a credit system, plans, and a community gallery.
The problem
UGC ads convert, but producing them is slow and expensive: find a creator, brief them, wait for footage, edit. Small brands that need to test ten angles a week cannot afford that loop. They need to go from a product shot to a usable ad in minutes.
What I built
A full-stack SaaS built around an async generation pipeline:
- API on Express with Better-Auth for accounts.
- Job queue on BullMQ over Redis, with dedicated workers that submit and poll AI image and video generation tasks so the UI never blocks on a slow model.
- Media stored and served from MinIO.
- Front end in React where users upload photos, pick a video model, and watch jobs complete.
The model layer is provider-flexible: image generation runs through Nano Banana, video through user-selectable models (Veo, Sora, Kling, Hailuo) on Kie.ai.
Why it matters
It collapses a multi-day creative process into a few minutes of self-serve generation. The queue-and-worker architecture is what makes it production-grade rather than a demo: slow third-party AI calls are isolated from the request path, retried, and tracked.
Tech
Express, Better-Auth, BullMQ, Redis, MinIO, React, Kie.ai for image and video generation, deployed on Docker.