I built an autonomous DTC ad creative tool in 7 days. Twice.
Started as a $1,497-$4,997/mo Creative-as-a-Service agency. Three days in, the PMF audit killed it. Rebuilt as a free tool with affiliate revenue. Here's the math, the pivot, and the stack.
The original plan
Seven days ago I started building a Creative-as-a-Service agency for DTC brands. The pitch: 15 AI-generated ad creatives per month, fully automated, priced at $1,497 / $2,997 / $4,997 per month across three tiers.
The stack was ambitious — Remotion for programmatic video, Anthropic Claude for personalized copy and reply classification, ElevenLabs for AI voiceover, a Vapi-powered voice agent for the few prospects who wanted to "talk to someone," and a launchd daemon to run cold outreach overnight. The whole thing was scoped to be ~99% autonomous.
And then I ran a real PMF audit.
The audit that killed it
I dispatched three parallel research agents to dig into (a) what Meta actually shipped with their AI ads tools, (b) the competitive landscape at our price point, and (c) whether DTC brands at $30K–$500K MRR were even buying this kind of service in 2026. The findings:
- Meta's Advantage+ Creative absorbs the commodity layer. By April 2026, 60–70% of Meta ad spend was already routing through Advantage+. Meta's stated goal for end-of-year 2026: "enter URL + credit card, AI does the rest."
- The DIY tool market price-anchors us low. Icon ships at $39/mo. Arcads at $110–$220/mo for 10–20 videos. AdCreative.ai at $29/mo. One named case study: a $12M DTC brand cancelled $14,200/mo in agencies for a $400–$800/mo AI stack.
- The 2026 macro is brutal. Consumer sentiment at 53.3 — worst since 2009. April 2026 tariffs hit DTC costs 15–45%. Bogg Bag, Beyond Meat, Beardbrand all publicly cut ad spend. Eightx labeled 2026 "the worst DTC demand year since 2009."
- Operator sentiment toward Meta's AI is hostile — and that's our opening. Direct quotes: "we turn that off whenever it pops up," "effectively scamming the customer," "the problem is their AI ads are really bad." 64% of agencies cite "AI slop" as their #1 concern.
Translation: trying to sell a $1,500–$5,000 monthly retainer to a CFO-panicked DTC founder, with no case studies, against Meta's free tool and Icon's $39 tool, was going to close at maybe 2–4% cold. Even if it worked, the agency model requires me to take support calls, judge creative taste, sign contracts, and handle escalations — none of which can be 99% autonomous.
So I rebuilt.
The pivot
Same codebase. Different go-to-market.
The product is now a free tool: paste a Shopify URL, get three AI-rendered ad creatives + a Meta Ad Library audit, emailed in ~2 minutes. No signup, no upsell sequence, no sales call. Files are yours.
Revenue comes from affiliate recommendations to the better paid tools — Arcads, Icon, AdCreative.ai, Klaviyo, Foreplay, Shopify. The page surfaces them as honest recommendations for users who want ongoing volume. Each link is referral-tracked. Average payout per converted referral lands somewhere between $20 and $500.
The model also runs a SaaS layer on top — $99–$299/mo for aspiring operators who want to clone this entire stack for their own niche or agency. White-labeled, multi-tenant, bring-your-own-keys. That ships once the free tool has traffic and the SaaS waitlist signals real demand.
The stack
The entire backend is one Python file under 400 lines. The static frontend is HTML + vanilla CSS/JS — no React, no build step. Cost per render is roughly $0.05 (mostly Anthropic tokens + Remotion compute).
- HTTP server: Python stdlib
http.server, threaded, ~250 lines. Serves the landing page, the API endpoints (/api/self-serve-demo,/api/chat,/api/track-click,/api/saas-waitlist), and the Stripe + Vapi webhooks. - Creative rendering: Remotion compositions (HookAd, ProductReveal, ProblemSolution, TestimonialUgc, OrganicReel). Briefs are dropped as JSON into a render-batch script; output is 1080×1920 MP4.
- Personalization + chat: Anthropic Claude. The form handler scrapes the Meta Ad Library, identifies the brand's top product, then asks Claude to generate hooks + bullets + a testimonial quote in the brand voice.
- Voice agent (optional, currently hidden on the landing): Vapi Web Call — browser WebRTC, no Twilio, no phone number. Free agent picks up; system prompt forbids selling, directs callers back to the form.
- Stripe: products + prices created programmatically via the Stripe SDK. Three products live in the dashboard but the agency tiers are dormant — only the SaaS plan (Phase 3, not yet shipped) will actively charge.
- Persistence: SQLite. Eight core tables (leads, conversations, clients, creatives, reports, activity, approvals, plus the new affiliate_clicks + saas_waitlist for v4). Backups are a
cp. Migration to Postgres can wait until MRR is past $50K. - Daemon: macOS launchd locally; production runs on Fly.io's free tier (256 MB RAM, ~$0/mo at our traffic). One Dockerfile, one fly.toml, one
fly deploy.
The numbers
- Build time: ~7 days, including the pivot.
- Lines of Python: ~3,500 across all modules. The runtime image is ~120 MB.
- Marginal cost per use: ~$0.05 (Anthropic + Remotion render).
- Monthly idle cost: ~$0 (Fly free tier; Anthropic charged per call; Stripe per transaction).
- Estimated revenue (conservative): ~$600/mo by month 3 from affiliate clicks; scaling to $3–8K/mo by month 6 as SEO and sharing compound. The SaaS layer adds another $10–30K MRR potential if the waitlist converts.
What I'd do differently
Three things.
Audit before building, not after. The PMF research I ran on day 3 could have run on day -1. Half the code I shipped (cold outreach engine, fulfillment pipeline, agency-style onboarder) is dormant in the repo. If I'd done the audit first, that's two days saved and a tighter v1.
Pick the monetization model before the brand. "Creative-as-a-Service for DTC brands" is a generic agency brand. "Free tool that monetizes via tool recommendations" is a totally different brand — more like a creator + curator than an agency. The visual identity, voice, and product surface change. I rebuilt all of it.
Build for distribution from day one. The free-tool model requires SEO + sharing to work. I shipped the tool before the SEO infrastructure (blog, comparison pages, JSON-LD schema). All of that is now built — but it should have been part of the first cut.
What's next
Phase 3 is the SaaS layer: per-tenant configuration, magic-link auth, white-labeled landing per subdomain, Stripe Connect for tenant billing. Target market is solo operators, growth marketers, and small agencies who want a hosted AI creative stack for their niche without engineering it. Pricing $99–$299/mo. Ships once the free tool has measurable traction (target: 25–50 SaaS waitlist signups).
If you're building something similar and want to be the first to know when Phase 3 opens, the waitlist is on the free tool page.
Want to try the free tool? Get your 3 free ad creatives →