Brand profiles
Keep generated prototypes aligned with your product colors, type, tone, ICP, and copy.
A brand profile is the context layer that makes Growthtyping output look like your product, not a generic Tailwind demo. Without it, every prototype reads as AI slop - and stakeholders will not greenlight experiments they cannot picture on your site.
Paste URL → extract context
Start at /brands (Settings → Workspace → Brands) by pasting your marketing site or app URL. Kits are scoped to the active workspace. Growthtyping extracts brand context via Firecrawl (live key required in production):
- Colors and design tokens - primary, secondary, borders, card radius, button radius, tint backgrounds
- Typography - heading and body font families as used on your site
- Tone of voice - sample copy that reflects how your product speaks
- ICP and product one-liner - who the product is for and what it promises
- Logos - Firecrawl branding mark when present; Logo.dev and manual override fill gaps
The result is a reusable profile attached to every render. Ingest once; run dozens of patterns without re-pasting.
Manual override editor
Automatic extraction is a starting point, not gospel. The brand editor at /brands lets you override any field - tweak a hex that scraped wrong, tighten the ICP sentence, or adjust tone when the homepage is stale.
Profiles are versioned per brand. Multi-brand support means you can test on Epigraph Media and a friendly beta company's context without mixing tokens.
Fidelity is the load-bearing test
Generic-looking output kills the value prop. Growthtyping invests in token extraction, prompt compilation, and fidelity checks because the prototype must survive a growth meeting without apology. If colors and copy are off, the experiment dies in the room - no matter how good the underlying idea is.
Why fidelity matters
Growth managers already have infinite ideas. What they lack is a credible visual in the design system, tone, and ICP their team recognizes. A social-proof ticker in your exact brand colors with your product name hits different than the same concept in default shadcn gray.
Brand profiles feed the prompt compiler (lib/prompt-compiler.ts), which binds pattern templates to variables like {{brand.primary}}, {{brand.heading_font}}, and {{brand.icp}}. The motor renders against that contract - not a blank style prompt.
Workflow tips
- Re-scrape after a rebrand - if marketing shipped new colors, refresh the profile before generating.
- Name profiles clearly - "Epigraph Media prod" vs "Acme beta" avoids shipping the wrong tokens.
- Pair with evidence-backed ideas - brand context plus a sourced pattern beats either alone.