cal.com
scanned 2026-09-15 07:00 UTC · defs 2026.09
category overview
the breakdown
6 of 27 patterns flaggedAI-default font stack (Inter / Geist / Space Grotesk)
Slop fonts
Inter, Geist, Space Grotesk, and Instrument Serif (italic) are the four fonts LLMs default to because Stripe/Linear/Vercel standardized them and training data is saturated with them.
Washed-out grey body text (below WCAG AA on a light background)
Low contrast
Body text that fails the WCAG AA contrast floor (4.5:1 for body, 3:1 for large text) is both an accessibility failure and a reliable AI-build tell — generators reach for light-grey-on-white and mid-grey-on-tinted because it 'looks soft'.
Gradient-heavy backgrounds (5+ elements)
Gradient bgs
5+ gradient-background elements means decorative blobs, glows, conic rainbow swirls, or 'aurora' panels everywhere.
Eyebrow pill above hero ("Now in beta" / "New")
Eyebrow pill
The 'Now in beta' / 'New: AI-powered' / 'Backed by Y Combinator' rounded pill above the H1 is the most-copied AI template element after the gradient hero.
Centered hero in generic sans (Inter-style)
Centered hero
Centered hero text + large H1 + slop font is the combined fingerprint of 'Vercel template starter, copy-pasted, hero customized in 30s'.
Numbered "1 · 2 · 3" step sequences
Numbered steps
Numbered 1·2·3 'How it works' sections are AI's go-to filler.
✓ clean, no tells in this category.
✓ clean, no tells in this category.
the four axes
slop: lower is better · system & AEO: higher is better
design slop
31/100
Heavy
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 14% of 3,349 scans
You've seen the score. Now fix it.
6 tells, heaviest first.
AI-default font stack (Inter / Geist / Space Grotesk)+8
whyInter, Geist, Space Grotesk, and Instrument Serif (italic) are the four fonts LLMs default to because Stripe/Linear/Vercel standardized them and training data is saturated with them. Using any of these signals 'AI-built' to anyone who's looked at more than 10 landing pages in 2026.fixReplace the body and heading typefaces with something that actually reflects your brand. Pick from foundry sans (Söhne, Aeonik, GT America, Untitled Sans, Suisse Int'l, Pangea, Telegraf, Object Sans) OR a system-font stack (`-apple-system, BlinkMacSystemFont, Segoe UI`) for body + a single distinctive display face for H1.ruleIf you can't name the foundry, don't ship the font. Inter/Geist/Space Grotesk are banned for this site.
Washed-out grey body text (below WCAG AA on a light background)+7
whyBody text that fails the WCAG AA contrast floor (4.5:1 for body, 3:1 for large text) is both an accessibility failure and a reliable AI-build tell — generators reach for light-grey-on-white and mid-grey-on-tinted because it 'looks soft'. 90%+ of generated pages fail it somewhere.fixRaise text contrast to meet WCAG AA: body copy needs ≥4.5:1 against its actual background, large/bold text ≥3:1. Stop using light greys (#999, #aaa, text-gray-400/500) for real reading text — reserve those for genuinely secondary metadata only. Darken body text toward #1a1a1a on light backgrounds, or lighten to ≥#d4d4d8 on dark.ruleEvery block of reading text must clear 4.5:1 (body) or 3:1 (large) against its real background. No exceptions for 'aesthetic' grey.
Eyebrow pill above hero ("Now in beta" / "New")+5
whyThe 'Now in beta' / 'New: AI-powered' / 'Backed by Y Combinator' rounded pill above the H1 is the most-copied AI template element after the gradient hero. Almost every AI-generated page has one, regardless of whether there's actual news.fixRemove the pill if you don't have specific, time-bound news. If you DO have real news (launch, funding, milestone), integrate it into the H1 itself or use a single text link below the CTA — not a decorative pill.ruleNo rounded pill (border-radius ≥ 999px) above the H1 unless it announces real, specific, dated news.
Gradient-heavy backgrounds (5+ elements)+4
why5+ gradient-background elements means decorative blobs, glows, conic rainbow swirls, or 'aurora' panels everywhere. This is the AI template equivalent of a 2008 MySpace page.fixAim for zero decorative gradients. At most ONE subtle gradient if it has structural purpose (a section background that aids hierarchy). Replace decorative gradients with: solid color blocks, a single tasteful photograph, real product UI screenshots, or negative space.rule≤1 gradient element total on the page.
Centered hero in generic sans (Inter-style)+4
whyCentered hero text + large H1 + slop font is the combined fingerprint of 'Vercel template starter, copy-pasted, hero customized in 30s'. It's not wrong — it's just instantly recognizable as default.fixSwitch to left-aligned text in an asymmetric layout. The classic move: hero copy on the left (40-50% width), real product UI/video on the right. Or: editorial layout with a big H1, a single supporting paragraph, no CTA buttons above the fold (force the scroll).ruleNo `text-align: center` on the H1 + subhead + CTA stack.
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 cal.com --fix
Claim this page
Own cal.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.