Grain

A field guide, not a vibe

An AI-built site is caught by its defaults, not its flaws.

It’s rarely ugly. It’s that it looks and reads like every other AI site — the same font, the same gradient, the same skeleton, stacked.

105-agent research pass 22 sources 25 claims verified 20 confirmed · 5 refuted

01 — The one thing to understand

The damaging tell is sameness, not ugliness. A model samples the statistically typical output, so an unedited export regresses to the median of every tutorial it read.

The cure follows from the cause. A site stops reading as AI-made once you’ve overridden enough of those defaults that fewer than three or four remain stacked. You don’t hide that AI touched it. You add the editing pass that vibe-coded output skips by definition.

02 — The confirmed fingerprint

What actually gives it away

Visual

highInter / Roboto at default weights, centered hero.A font picked for safeness, with no personality, doing the headline.
highThe blue→indigo/purple gradient.The single most-documented tell — “the Purple Problem.” It traces to Tailwind shipping indigo-500 as a prominent default; the model learned “modern web = purple.”
highThe skeleton.Badge-pill above the H1 → oversized centered vague hero (“Build the future”) → three-up icon-card grid → numbered steps → stat-banner of big numbers. That exact sequence is the giveaway.

Content

highBuzzword vocabulary.delve, leverage, seamless, robust, cutting-edge, empower, streamline. The only tell with peer review: “delve” rose ~1,374% in abstracts after ChatGPT (Kobak et al.).
highTells rather than shows; omits proof.Asserts “exceptional service” with no screenshots, no named customers, no team photos, no real numbers. The absence of proof is a stronger signal than any single word.
medCliché openers, hedging, em-dash overuse, flat rhythm.“In today’s fast-paced digital world…” Uniform 15–20-word sentences. (Burstiness is weakening as a signal — newer models write burstier.)

Technical

highUntouched Tailwind + shadcn/ui defaults.Stock palette and spacing, default component styling dropped in. “Vibe-coded” (Karpathy, 2025): shipped with no human editing pass, so the defaults survive.

Folklore that was refuted — don’t use these

  • Colored card borders are a reliable tell. Refuted 0–3. Not a real signal.
  • AI images always have anatomy errors. Refuted 1–2. Modern models mostly don’t; absence proves nothing.
  • A fixed “Hero Left / Text Right” layout with 0.1-opacity shadows. Refuted 1–2. Too specific.
  • Inconsistent margins & padding. Refuted 0–3. AI output is usually consistent — it inherits a scale.
  • AI can’t form an opinion. Refuted 1–2. It can be prompted into strong ones; neutral tone is lazy prompting.

03 — Judge the cluster

Count the stacked defaults

No single tell is fatal — humans use Inter and gradients too. What’s diagnostic is three or four untouched defaults at once. Check the ones your page still has:

Stack audit

0 of 5 stacked — reads human.

04 — The editing pass

De-stack the defaults

You don’t have to remove every signal. Get under three or four stacked and the “AI-made” read breaks. Tick them off:

0 / 7 done

05 — The caveat that dates this

These are 2025–26 heuristics with a short shelf life

The media tells are collapsing fastest — newer video and image models defeat the old anatomy and motion cues. Text is getting burstier, and the buzzword list dilutes as it circulates and as humans absorb the same vocabulary. What lasts is the visual clustering tell, because it depends on human laziness, not model capability. Re-check the specific signals every few months.

Self-audit: this page scores 0 / 5 on its own stack meter. Serif display, brick accent, editorial skeleton, real receipts, a stated view.