Create Studio
The unified creative flow that replaces 12 separate Create surfaces. Pick a product, choose what to make, generate, publish. Five minutes for the first asset. Ninety seconds for the second.
The 5-Minute Promise
Create Studio collapses your old workflow into one path:
Open /studio → Pick product → Pick what to make → Pick style →
Add direction (optional) → Generate → Review → Publish to N places
→ Recommended Next Step
Returning power user on mobile: 60 seconds. Returning user on desktop: 3 minutes. First-time tenant: 5 minutes including onboarding.
How it works
Studio is six steps. The URL is the source of truth — refresh keeps your work, share-the-link works, back/forward never loses state.
Step 1 — Pick a product
Every Studio session starts with a Shopify product. The Library, brand voice, vibe defaults, and destination defaults all flow from this anchor.
Step 2 — What are we making?
Six options: 📷 Product photos · 📱 Social post · 💰 Meta ad · 🎬 Video · ✉️ Email · 📅 Week of content. The "Recommended" badge is tailored to your last activity + brand coverage gaps.
Step 3 — Choose a style
Visual cards: Studio · Lifestyle · Hero · Ingredient · Bundle · Custom. Pick one. A "Last winner" card surfaces your most-successful past style for this intent.
Step 4 — Add any extra direction (optional)
Vibe, length, aspect ratio — all pre-filled from your brand profile. Optional textarea for one-liner direction ("Mother's Day angle, soft yellow tulips in foreground"). Live cost preview on the right.
Step 5 — Pick your favourite
Generation runs. Assets appear in real-time as the worker finishes them. Per-asset: refine prompt, copy text inline, regenerate. "Make more like this" and "Try different style" loops back.
Step 6 — Where should this go?
Multi-select destinations grouped by category:
- 🛒 Shopify — product image, page banner
- 📱 Social — Instagram, Facebook
- 💰 Ads — Meta Ad (new campaign or add to existing)
- ✉️ Email — download HTML, send test, Mailchimp/Klaviyo draft
- 📁 Files — zip, premium package
- 📅 Calendar / Library — schedule for later, auto-save to Brand Library
Pre-selected destinations reflect what you usually do for this intent. One button publishes them all in parallel.
After publishing — What's next?
A modal surfaces 3-4 recommended next actions tied to what you just made. Made a social post? "Run as an ad" / "Use in your weekly email" / "Make versions for your other products." The continuation loop keeps the session moving.
Meta ad flow — two paths
Tom's mandate was "let the user decide." Studio ships two distinct ad-generation flows as first-class presets:
Flow A — Concept matrix
"AI picks the angles. I just review and ship."
/studio?preset=meta-ad-5-concept
Step 3 shows 11 concept types — 5 always-on (hero / floating / ingredient / in-context / UGC) and 6 trend-driven ones (founder-direct / landmark-backdrop / process-shot / review-quote / cocktail-build / niche-trends). The 5 always-on are pre-selected; trend-driven ones show "Setup required" badges with one-click links to upload the missing brand assets (founder photo, landmark, etc.).
Step 4 has two optional power toggles:
- "Compose hero first" — opens a hero-approval modal. AI generates one hero image; you approve it; the 5 concepts then inherit that hero's lighting + palette. Default OFF (faster).
- "Generate the full 25-variant matrix" — after the 5 base concepts land, runs the compositor to make 5 base × 5 overlay templates = 25 ad variants. Default OFF (saves credits; opt-in for power users).
Step 5 shows each concept as a wide card: image on the left, editable copy fields on the right (headline / primary / description / CTA picker). Inline edits debounce-save to the asset record. Matrix-mode adds a "✨ Plus 20 overlay variants generated" badge.
Flow B — From template library
"I want a Trustpilot-style layout / before-after / hero-with-offer."
/studio?preset=meta-ad-from-template
Step 3 swaps the concept picker for a template gallery — 20 curated ad layouts from lib/ad-templates/library.ts. Filter by category, multi-select 1-5 templates per session.
Each template card shows a "YOUR PRODUCT" badge with a thumbnail of the merchant's actual product (bottom-left of the card), so it's clear which product will be featured in the final ad.
Optional: per-card preview — click the "🔍 Preview" button on any card to render a real Gemini composite of that template with the merchant's product as the hero. Costs ~£0.02 per render (Flash tier); cached for 30 days. The preview replaces the generic mockup on the card.
Bulk preview — for power users, a "🔍 Preview all N with my product" button at the top of the gallery renders every visible template at once (respects the category filter). Confirms cost up front (~£0.40 for all 20). Runs 3-concurrent in ~25s. Each render lands in its card as it completes.
Step 4 collects the same brief fields (offer, audience hint, vision) but the power toggles are hidden — templates already define their own anatomy.
Step 5 is identical to Flow A — same wide card, same inline copy editor.
Shared — Step 6 publish to Meta
Both flows produce CreateAssets with concept/template tags + per-ad copy. Step 6's destination picker enables two Meta destinations:
- Meta ad — new campaign: creates a paused campaign + ad set + N ads in one call. Inline form: campaign name, objective (Conversions / Traffic / Engagement / Awareness / Sales), ad set name, daily budget (£/day, pre-filled from the matrix's budget recommendation), country, optimization event.
- Meta ad — add to existing campaign: loads your campaigns + ad sets from Meta Marketing API; you pick which to drop the new ads into.
Audience editor + reach prediction (Step 6 inline)
When a Meta-ad destination is selected, a dedicated audience panel appears with:
- Interest chips — pre-filled from the v2 ad pipeline's AI suggestion (marked with a "✨ from AI brief" badge). Add new interests by typing + Enter/comma. Remove with ×.
- Age range input — "28-65" format, pre-filled.
- Country dropdown syncs into Meta's
locationsarray automatically. - Live reach estimate in the panel header — "Est. daily reach: 1.2K–4.8K", auto-refreshing as you tweak interests / country / budget / objective. Powered by Meta's
/delivery_estimateendpoint via/api/meta-ads/delivery-estimate. Shows "Waiting for first delivery…" placeholder when Meta is still warming up.
Each audience dimension overrides the AI suggestion independently — change just the age range and the AI's interests still apply.
After publish — live campaign delivery
When a Meta-ad publish succeeds, the Recommended Next Step modal opens with a <CampaignDeliveryWidget /> at the top showing live first-hour delivery: spend, reach, impressions, clicks, CTR, CPC. Auto-refreshes every 30s; manual "↻ Refresh" button for impatient merchants. Stops polling when the modal closes.
Below the widget, the standard next-step action cards + "View campaign in Meta Ads Manager →" link.
Cmd-K shortcuts
Two discrete entries in the command palette (⌘K / Ctrl+K):
- 💰 Run a Meta ad — concept matrix → Flow A
- 🖼 Run a Meta ad — from template → Flow B
No auto-routing; you pick the flow you want.
Brand Library
Every generated asset auto-saves to your Brand Library at /library. Search by tag, product, style, type, or date. Filter by favourites. Archive what you don't need. Click any asset to reuse it in a new Studio project — "Use this image in an ad / post / email / product photo."
The Library is the long-term home for your generated content. It's how Studio keeps the second-asset-in-90-seconds promise — you reuse what worked, you don't start from scratch.
Mobile Review Queue
When you're between things on your phone, hit /m/review. Swipe through pending assets one at a time — Approve / Discard / Regenerate. Phone-optimised flow for the "review and ship" moments between everything else.
Presets
Studio supports preset URLs to deep-link into the flow:
| Preset | URL |
|---|---|
| Batch Studio (custom) | /studio?preset=batch-studio-custom |
| IG + FB post | /studio?preset=ig-fb-single-post |
| Product photos (5-style) | /studio?preset=photoshoot-5-style |
| Meta ad — concept matrix | /studio?preset=meta-ad-5-concept |
| Meta ad — from template library | /studio?preset=meta-ad-from-template |
| Campaign email | /studio?preset=email-campaign |
| Shop open today | /studio?preset=shop-open-today |
| Event promo | /studio?preset=event-promo |
| Bulk overlay | /studio?preset=bulk-overlay |
| Product video | /studio?preset=product-video |
| Week of content | /studio?preset=weekly-content-plan |
Add &productHandle=spring-bouquet to skip Step 1.
The 12 old Create surfaces
During the rollout, the old /create/* routes still work. Each has a dismissible banner pointing at the matching Studio preset. They'll be retired in Phase 10 of the migration once Studio reaches full feature parity.
| Old route | Studio preset |
|---|---|
/create/batch-studio | batch-studio-custom |
/create/social-post | ig-fb-single-post |
/create/photoshoot | photoshoot-5-style |
/create/ad-creatives-v2 | meta-ad-5-concept |
/create/ad-creative-templates | meta-ad-5-concept |
/create/shop-open-today | shop-open-today |
/create/event-promo | event-promo |
/create/bulk-overlay | bulk-overlay |
/create/email | email-campaign |
/create/video | product-video |
/create/weekly-content-plan | weekly-content-plan |
/create/ad-creatives (v1) | redirects to v2 |
Telemetry
Super-admins can see real-time usage at /admin/telemetry/studio — activation funnel, time-to-publish, top presets, top destinations, per-tenant breakdown.
Regular tenants see their own usage rollup at the same URL.
Cost preview + plan limits
Every Brief screen shows a live cost preview before you hit Generate:
3 images @ 5 credits each = 15 credits (32 left this month)
When you're under 20% of your monthly quota, a persistent warning banner appears. When you're over, the Generate button disables with an upgrade prompt. No surprises after generation.
What's next
The Create Studio migration is rolling out in 10 phases over ~13 weeks. We're past Phase 9 — every old surface has a Studio path, telemetry is live, mobile review works. Phase 10 retires the old route files (after a 30-day grace period to confirm zero traffic) and tunes the home dashboard + Cmd-K based on real usage data.
Questions or feedback: [email protected].