Was It Vibed?
We'll tell you if a website was built by a human or prompted into existence.
Fetching HTML...
The forty-two signals
CSS Architecture
- Inline Style Density
- Tailwind Class Density
- No CSS Architecture
- Utility-to-Custom Class Ratio
HTML Quality
- Div Soup Ratio
- Heading Hierarchy
- Form Accessibility
- Button vs Clickable Div
- Missing Lang Attribute
- Single-Page Anchor Navigation
- Dead Social Links
- Missing Image Alt Text
Copy & Content
- Em Dash Density
- AI Buzzword Dictionary
- AI Header Formulas
- Inclusive Framing Pattern
- Emoji as Icons
- Three-Column Feature Grid
- Placeholder Text in Production
- Fake Testimonial Patterns
- Sparkle Emoji Overuse
AI Aesthetic
- Gradient Backgrounds
- Gradient Text
- Glassmorphism / Backdrop Blur
- Scroll Animations
- Excessive Border Radius
- Glow / Colored Box Shadows
- Floating Decorative Blobs
- Eyebrow Labels
- Numbered Section Markers
Meta & Infrastructure
- Default Page Title
- Missing Open Graph Tags
- Default Favicon
- No Sitemap / Robots Reference
- Source Maps in Production
- Console.log in Production
- Wrong Copyright Year
Framework Defaults
- Default Deployment Subdomain
- Boilerplate HTML Structure
- Default Error Page
- AI Tool Stack Fingerprint
- AI Builder Provenance
It's not just counting divs.
-
Tool fingerprints
v0, Bolt, and Cursor each leave specific traces in compiled output.
-
Signal combos
One gradient doesn't mean much. Tailwind + div soup + gradients + glassmorphism + a three-column grid does.
-
Works on SPAs too
React apps ship a near-empty HTML file. We pull apart the compiled CSS and framework scaffolding to find the signals anyway.