Live

Content Studio

Internal image-generation tool for multi-brand marketing teams.

Status
Live
Role
Founder, builder
Year
2025 — ongoing
Stack
Next.js · Supabase · Claude · Gemini
Focus
Internal tool · Multi-brand
Content Studio generation canvas — brand picker, prompt composer, output size selector, and generated image preview

Why this exists.

The marketing team runs several brands in parallel. Using ChatGPT or Midjourney directly meant pasting the same guidelines into every session, and output still drifted: wrong colors, wrong type, wrong feel. Agency work was too slow for the volume.

Content Studio fills one specific gap: persistent brand rules, so consistency stops depending on whoever wrote the prompt.

Each brand has its own workspace. The workspace holds the CVI (palette, typography, tone notes, reference images) plus a set of prompt presets for the formats the team actually ships: banner, social post, product shot. A marketer picks a brand, picks a format, writes a prompt, gets an image. Brand rules are applied automatically.

How I built it.

The core bet was simple. Most of the output quality comes from rewriting the prompt before the image model sees it. Stacking more instructions into the user's prompt was never the answer.

  • CVI stored once per brand in Supabase: palette, fonts, tone, references
  • Prompt-rewrite layer in Claude that checks against brand rules and cleans up
  • Cleaned prompt + brand context sent to Gemini for generation
  • Every output saved, versioned, and taggable in a per-brand asset library
  • Team auth + per-user history; no public-facing surface to harden
  • Output sizes configurable per organization
Content Studio admin — output sizes configuration with Instagram Post, Instagram Story, Facebook Post, LinkedIn Post, Web Banner, and Web Hero formats

Admin view. Output-size registry, editable per organization

What shipped.

  • Multi-brand workspaces with CVI injection
  • Prompt presets per brand per format
  • Two-model pipeline (Claude → Gemini)
  • Shared asset library with version history
  • Team auth with per-user generation history
  • Admin panel for projects, users, and output sizes

What I'd tell someone starting one.

Two models beat one. Most of the output quality came from rewriting the prompt with Claude before sending it to Gemini, not from clever prompt stuffing.

Persistent context beats repeated instruction. Pasting brand rules into every chat session never scales. Storing them once and injecting them automatically is the whole product.

Internal-only is a feature. Gating to one team meant I could skip trust & safety theatre and focus on building something that made the work faster.

See more projects →

Back to all projects

Let's build
something great.

Got a workflow that needs fixing or a process that's worth improving? Let's talk.

tanel@cleverlab.ee →