posthog.com
scanned 2026-09-15 06:58 UTC · defs 2026.09
MILD19 B
19/100
B · Mild · 4/27 patterns flagged
Cleaner than 36% · rank #2143 of 3,349 scans

Mostly clean, with a few template tells creeping in.

category overview
Type
clean
Color
+8 · 1 flagged
Layout
+7 · 2 flagged
Effects
+4 · 1 flagged
Imagery
clean
the breakdown
4 of 27 patterns flagged
✓ clean, no tells in this category.
VibeCode Purple — filled indigo/violet CTAs
Vibe purple
Tailwind's `indigo-600` (#6366f1) and `violet-500` (#8b5cf6) became the de-facto primary color for v0.dev, Cursor, Bolt, and Lovable templates.
+8
Cards nested inside cards
Nested cards
Cards inside cards (a bordered/shadowed/rounded container holding more bordered/shadowed/rounded containers) create visual noise and excessive depth — a reflexive AI layout move where every group gets wrapped in its own panel.
+4
Numbered "1 · 2 · 3" step sequences
Numbered steps
Numbered 1·2·3 'How it works' sections are AI's go-to filler.
+3
Glassmorphism (backdrop-filter blur on translucent layers)
Glass
`backdrop-filter: blur()` on translucent layers is a 2021 trend that AI templates kept reproducing.
+4
✓ clean, no tells in this category.
the four axes
slop: lower is better · system & AEO: higher is better
design slop
19/100
Mild
copy slop
not run
system · DESIGN.md
none
no DESIGN.md
AEO · agent-readable
not run
scan to evaluate
system & aeo detail
system · DESIGN.md drift

No DESIGN.md declared. Add a design system file to track drift between redesigns.

AEO · agent-readable
Page is reachable (HTML 2xx)+10
AI crawlers are not blocked (GPTBot gets 2xx)+25
robots.txt does not Disallow AI crawlers+20
Page is indexable (no noindex)+15
Markdown twin served at <url>.md+10
HTML advertises the markdown twin (Link rel=alternate)+8
/llms.txt published at the site root+7
HTML sends Vary: Accept (content-negotiation aware)+5

Eight checks, weighted to 100. Evaluated live per scan. Run a fresh scan to see pass/fail.

competitive analytics
cleanliness radar
TypeColorLayoutEffectsImagery
— you--- rank avg
slop distribution
cleaner than 36% of 3,349 scans

You've seen the score. Now fix it.

4 tells, heaviest first.

VibeCode Purple — filled indigo/violet CTAs+8
whyTailwind's `indigo-600` (#6366f1) and `violet-500` (#8b5cf6) became the de-facto primary color for v0.dev, Cursor, Bolt, and Lovable templates. Any saturated purple/indigo CTA in the HSL 240–295° range reads as 'AI-coded'.fixPick a primary color anchored to your actual brand, not the LLM default. Avoid HSL hue 240–295 entirely for filled CTAs. High-contrast neutrals (pure black, off-white, rich brown) are the safest reset. If you want color, pick one saturated accent that has *meaning* (Stripe purple has a 10-year story; yours probably doesn't yet).ruleNo #6366f1, #8b5cf6, or any HSL hue in 240–295° on filled CTAs.
Glassmorphism (backdrop-filter blur on translucent layers)+4
why`backdrop-filter: blur()` on translucent layers is a 2021 trend that AI templates kept reproducing. It always reads as decorative-for-the-sake-of-it and signals 'theme.css from a Bolt starter'.fixRemove all backdrop-filter blur. Use opaque surfaces with strong contrast. If you need depth, a single subtle box-shadow (0 1px 2px rgba(0,0,0,0.05)) does more with less.ruleNo `backdrop-filter: blur()` anywhere on the page.
Cards nested inside cards+4
whyCards inside cards (a bordered/shadowed/rounded container holding more bordered/shadowed/rounded containers) create visual noise and excessive depth — a reflexive AI layout move where every group gets wrapped in its own panel.fixFlatten the hierarchy. Pick ONE level to be the card and use spacing, typography, and dividers for the inner structure instead of nesting more containers. A card holding three sub-cards should usually be a card holding three text blocks separated by space or a hairline.ruleNo card-like container inside another card-like container. One level of elevation, max.
Numbered "1 · 2 · 3" step sequences+3
whyNumbered 1·2·3 'How it works' sections are AI's go-to filler. They almost never describe an actual product flow — they describe a generic 'sign up / use it / love it' loop.fixReplace the numbered steps with the actual product flow shown in real UI. A single annotated screenshot or 15-second video tells the user more than 1-2-3 generic verbs. If steps are essential (e.g. an actual checkout flow), make them visual — show the screen at each step.ruleNo numbered steps section with generic verbs like 'Sign up / Connect / Get started'. If you keep numbered steps, each must include a real product screenshot.
npx slop-detect posthog.com --fix
share
embed the live badge
slopB · 19
[![slop](https://www.slop-detect.com/badge/posthog.com.svg)](https://slop-detect.com/score/posthog.com)
live · re-scans periodically
Claim this page

Own posthog.com? Verify by email to list it in the directory with a real dofollow backlink and get an alert if it ever drifts back into slop.

monitoring

Keep posthog.com on-system between redesigns.

A daily re-scan, and a regression or design-drift email the moment a redesign slips back into slop. Scanning stays free; this remembers a domain over time.

double opt-in · free during validation · engine stays MIT & free forever · pricing · privacy