01 The Challenge
Brand Inputs Live Everywhere: Websites, Decks, Drives. Producing On-Brand Creative For Every Social Format Took Marketing Teams Days Of Back-And-Forth.
Case Study · 01 / AI Marketing Platform
An AI Marketing Platform That Learns A Brand From Its Website, Builds A Reusable Brand DNA, And Turns One Brief Into On-Brand Ad Creatives For Every Channel, In Minutes.
Product Design & Full-Stack Engineering ·

01 · By The Numbers
Counted Straight From The Codebase And Git History. No Vanity Metrics, No Projections.
29
Ad Themes
Product Hero To UGC Style
6
Creative Formats
IG · FB · X · LinkedIn · Hero
4
Worker Queues
Brand · Campaign · GPU · Default
132
Commits
Feb → Apr 2026
02 · Overview
Brand Inputs Live Everywhere: Websites, Decks, Drives. Producing On-Brand Creative For Every Social Format Took Marketing Teams Days Of Back-And-Forth.
We Scrape The Site Into A Structured Brand DNA, Then Fan One Brief Out To Queued Gemini Workers That Write Copy, Pick Ad Themes And Render Each Format.
Marketers Go From A URL To A Library Of Brand-Consistent Ads, Then Refine Any Creative By Chat Or AI Image Edits, Metered By Simple Credits.
03 · What We Built
Every Generation Reads From The Same Brand Profile, So Copy, Layout And Imagery Stay On-Brand Across Channels.
BrowserBase Screenshots And Gemini Vision Distil Voice, Visuals, Logo And Products Into A Reusable Profile, Exportable As A Brand PDF.
One Brief Fans Out To Every Selected Format, With Copy, Theme And Layout Chosen Per Channel.
From Product Hero And Social Proof To UGC And Meme-Style Layouts, Parsed Into Renderable Templates.
Refine Any Creative In Conversation Or Edit Imagery With AI, Every Change Kept In The Campaign Thread.
Usage-Based Credits For Scrapes, Formats And Edits, With Checkout, Webhooks And Product Analytics.
04 · Architecture
A FastAPI Core Hands Every Heavy Job To Celery Workers. Clients Poll Task Status While Gemini, BrowserBase And The Renderer Do The Work.
~50 Endpoints · 4 Queues · AWS ECS Fargate
05 · Stack
A Typed Next.js Front End Over A Python Pipeline, Picked So The GPU-Heavy Work Can Scale Independently Of The API.
async def generate_campaign( user_id: str, creative_types: List[str], brief: str, brand_dna: Optional[Dict] = None, user_prompt: Optional[str] = None, dna_id: Optional[str] = None, selected_image_urls: Optional[List[str]] = None, selected_product_context: Optional[Dict[str, Any]] = None, layout_options: Optional[Dict[str, Any]] = None, brand_owner_id: Optional[str] = None, ) -> Dict[str, Any]: """Runs the multi-asset marketing campaign generation pipeline.""" # Whoever owns the brand is the lookup owner; default to caller effective_brand_owner = brand_owner_id or user_id agent = MarketingAgent(user_id=user_id) async with AsyncSessionLocal() as db: await set_rls_context(db, user_id)$ celery -A worker worker -Q campaign,gpu→ campaign + gpu queues consuming06 · PageSpeed
Google PageSpeed Insights Scores For tessa.so: Speed, Accessibility And SEO Engineered In From Day One.
Tell Us What You’re Building. We’ll Reply Within One Business Day With A Scoped Plan.