posthog.com
scanned 2026-09-15 06:58 UTC · defs 2026.09
category overview
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.
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.
Numbered "1 · 2 · 3" step sequences
Numbered steps
Numbered 1·2·3 'How it works' sections are AI's go-to filler.
Glassmorphism (backdrop-filter blur on translucent layers)
Glass
`backdrop-filter: blur()` on translucent layers is a 2021 trend that AI templates kept reproducing.
✓ 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
— you--- rank avg
SaaS & dev tools neighbors
#1stripe.com
stripe.com
19 B#2posthog.com
posthog.com
19 B#3supabase.com
supabase.com
20 B-#4linear.app
linear.app
23 B-#5railway.app
railway.app
24 C#6cal.com
cal.com
31 D+slop distribution
cleaner than 36% of 3,360 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
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