Why AI-Generated Websites All Look the Same (and How to Avoid It)
Purple heroes, glass cards, and bento grids are training-data defaults. A written design constitution and banned-pattern linting are the fix.
By Brian— founder-engineer at Lab Twelve.
AI-generated websites look the same because models regress to the most common patterns in their training data: purple-gradient heroes, glassmorphism cards, emoji feature grids, identical bento layouts, and sun/moon theme toggles in the nav. The output is statistically average design—and average reads as cheap.
Avoiding it requires a written design constitution, mechanical linting for banned patterns, and one signature element per page instead of five decorative ones.
Name the tells precisely
If you see three or more on a landing page, assume unowned design:
| Tell | Why models default to it | |------|--------------------------| | Purple/violet gradient hero | Dominant SaaS marketing aesthetic 2020–2024 | | Glassmorphism cards | Reads "modern" in Dribbble shots | | Emoji feature grids | Cheap icon substitute in training snippets | | Identical bento grids | Tailwind UI / component library sameness | | Sun/moon nav toggle | Every tutorial's dark mode demo | | Pill badges everywhere | Startup template cargo-cult | | Rounded-2xl everything | Friendly defaults, no hierarchy |
None of these are evil in isolation. Together they scream "generated, not designed."
Why models regress to the mean
LLMs predict likely tokens. Likely UI copy uses the same headline verbs and filler phrases you see on template marketplaces. Likely layout is hero + three columns + testimonial carousel + pricing cards with one highlighted tier.
Training data over-represents template marketplaces and under-represents disciplined editorial systems. The model gives you the internet's median taste.
That is fine for internal tools. It is death for a premium positioning claim.
Before and after: median vs owned
| Median AI landing | Owned editorial landing | |-------------------|-------------------------| | Purple gradient hero | Ivory canvas, ink type | | Three identical feature cards | One signature element, hairline rules | | "Unlock seamless workflows" | Specific job-to-be-done headline | | Hidden pricing | Published tiers from offers | | Theme toggle in nav | Appearance in settings only |
The left column is statistically likely from a one-shot prompt. The right column requires a constitution someone enforces. Lab Twelve lives in the right column on purpose.
The fix: design constitution
A constitution is law, not inspiration. Lab Twelve's lives in docs/design-constitution.md and is enforced by pnpm check:design in CI.
Banned visual patterns (excerpt):
- Purple / violet / fuchsia / indigo Tailwind classes
- Gradient headline text (
bg-clip-text+ gradient) - Glowing blobs, orbs, glassmorphism (except allowlisted modal blur)
rounded-xl/rounded-2xl/rounded-3xl(except structural pills)- Emoji as icons or decoration
- Stock 3D humans, AI robot/brain hero imagery
- Generic bento grids with no hierarchy
Banned copy patterns (excerpt):
- Words: supercharge, unlock, seamless, elevate your, harness the power, transform your, 10x your
- Em-dash spam
- Passive voice in product UI
- Clever vagueness over specific facts
Banned UX patterns (excerpt):
- Theme toggle in navigation (appearance belongs in settings)
- Pretending incomplete data is complete
- Raw hex in components (use tokens)
When CI fails, the build fails. Taste becomes mechanical, not aspirational.
Full ban list lives in docs/design-constitution.md. scripts/check-design.mjs scans app/, components/, and content/ on every verify run. Blog MDX cannot use inline style=. Marketing copy in components cannot use raw hex outside allowlisted OG paths.
That means agents and humans get the same rejection message: fix the pattern, not the reviewer.
Linting in practice
What actually trips the gate:
| Pattern | Why it fails |
|---------|--------------|
| purple-500 in a component | Brand law |
| rounded-2xl on a card | Radius cap is 4px |
| supercharge in hero copy | Banned marketing word |
| #AABBCC in JSX | Tokens only |
| style= in blog MDX | No inline styles in content |
Founders should ask vendors: "Show me your CI design gate." If the answer is "we have good taste," you have a person, not a system. People quit. Systems stay.
One signature element per page
Our constitution allows one kitchen-ticket, diagonal cut, or editorial bold moment per page—not both, not five.
Spend the accent budget once. Everything else stays ivory and ink (practical system).
Lab Twelve as worked example
Lab Twelve ships black-and-white surfaces, 4px radius max, hairline borders over shadows, Geist typography, and ticket-card metaphors on quote flows. No purple. No nav theme toggle. No emoji checkmarks in feature lists.
That is not minimalism for aesthetics. It is differentiation through restraint—harder than adding another gradient.
AI-native delivery without AI-default visuals
AI-native development accelerates missions. It does not remove the pass. Humans enforce the constitution on every merge.
What founders should ask any studio
Before you hire, run this five-minute audit:
- Is there a purple gradient on the hero? If yes, ask what their constitution says about it.
- Are prices published or hidden behind "book a call"?
- Can they show you the structured scope artifact before quoting?
- Is source code yours at handoff?
- Does the UI look identical to their last three clients?
Lab Twelve publishes answers: no purple, yes prices, yes ScopeSpec, yes repo, no clone aesthetic. See the 2026 cost guide for numbers that do not move after kickoff.
Working with generators without becoming one
Teams using AI should treat models as junior drafters, not creative directors. Prompt for structure; reject pattern defaults in review. Run mechanical lint on every PR. Keep a human pass before deploy.
If your process cannot say no to a gradient, you do not have a process—you have a slot machine that usually lands on violet.
Pairing constitution with AI-native delivery
AI-native pipelines generate faster than humans alone. Without a constitution, faster just means more sameness per hour.
The workflow that works:
- Agent drafts against mission spec
pnpm check:designruns in verify- Human pass rejects pattern defaults
- Deploy only after both pass
Speed without gates is how you get another purple SaaS in production on Friday.
For founders auditing their own product
You do not need our constitution verbatim. You need written nos your team can cite in review:
- List three visual patterns you refuse (gradients, emoji icons, etc.)
- List three copy words you refuse (marketing filler)
- Assign one owner to hold the pass before release
- Run grep or lint if you have engineering bandwidth
Without that, every new hire and every new agent prompt resets you to median taste. Median is free. It is also invisible in a crowded market.
The fix is not "hire a better designer." The fix is document the nos, lint the defaults, and hold the pass before deploy. Everything else is hope.
Read three-Michelin-star discipline for the ops metaphor. See black-and-white SaaS design for token-level craft. Compare budgets in the 2026 cost guide. When you are ready to scope software that will not look like a template, /start.
The honest take
Banning patterns feels rigid until you watch a model ship purple again on the first prompt. Rigidity is the point. This article is marketing for the design gate—and the gate exists because willpower does not scale across agents and contractors.
Compare surfaces on examples. When you want software that does not look like a template, /start with scope.
Get a fixed quote in one conversation
Describe your build and get a fixed quote before you pay.
Start an AI scope →Related
- Black-and-White SaaS Design: A Practical System
Ivory and ink tokens, hierarchy without color, and a single accent budget—how Lab Twelve builds SaaS UI that reads premium, not generated.
- The Three-Michelin-Star Dev Studio: Why Taste Matters in Software
Fine-dining brigade discipline maps to shipping software: mise en place, the pass, consistency as product. AI raises the floor; taste sets the ceiling.
- What Is AI-Native App Development?
AI-native means agents execute scoped missions from structured specs—not Copilot autocomplete with a markup invoice.