Worked examples v0.app
Is v0.app vibe coded?
Vercel's generator, marketing itself. We fetched the homepage on 29 August 2026 and ran all 86 detectors over the raw HTML — the same scan you get from the box on the front page, frozen here so the numbers can be argued with.
v0.app
Suspiciously smooth
Nothing here is proof. Everything here is a pattern. Draw your own conclusion.
- Vibe tells
- 10
- Craft tells
- 6
- Confidence
- high
Plenty of signal to work with.
Where the score came from
- Platform fingerprints3 hits
Artefacts of the tool, not of taste
- Colour, type and surface4 hits
The visual defaults, applied unedited
- Layout and architecture1 hit
The shape a page takes when nobody asks what it needs to say
- Copy tells1 hit
How the words were written
- Leftoversnone
Scaffolding never cleaned up
- Source and build1 hit
What is visible in the shipped code
- How it behavesnone
Weight, mobile, accessibility, SEO — where the money leaks
- Human craft6 hits
Evidence of deliberate decisions
Evidence
16 findings- +22
v0.dev fingerprints
The page's own assets still point back at v0.
- +12
shadcn/ui class signatures
204 shadcn/ui utility signatures in the markup.
- +12
Lucide icon set
120 Lucide icon references — the house icon set of every AI builder.
- +9
Copy that never says who it is for
654 words, and still no price, no contact route and no named audience. The page describes a category, not a business.
- −9
Deliberate social preview
Open Graph title and image were both authored.
- +8
rounded-2xl, soft shadow, 1px grey border — on everything
10 extra-rounded cards, 6 oversized shadows and 0 hairline borders — the untouched shadcn card, applied to content of wildly different importance.
What we read
- title
- v0 by Vercel - Build Full-Stack Web Apps with AI
- generator
- —
- server
- Vercel
- status
- 200
- html
- 1.25 MB
- words
- 654
- fetched in
- 1282 ms
Reading this score
v0.app landed on 37/100, which puts it in the suspiciously smooth band. That number is not a percentage and not a probability — it is strength of evidence: 72 points of tells, damped by craft, less 38 points of deliberate decisions, mapped through one logistic curve.
What pushed it up
- v0.dev fingerprints +22 — The page's own assets still point back at v0.
- shadcn/ui class signatures +12 — 204 shadcn/ui utility signatures in the markup.
- Lucide icon set +12 — 120 Lucide icon references — the house icon set of every AI builder.
- Copy that never says who it is for +9 — 654 words, and still no price, no contact route and no named audience. The page describes a category, not a business.
- rounded-2xl, soft shadow, 1px grey border — on everything +8 — 10 extra-rounded cards, 6 oversized shadows and 0 hairline borders — the untouched shadcn card, applied to content of wildly different importance.
- Cards inside cards +8 — 6 card surfaces sitting inside other card surfaces. Everything gets a box, everything gets equal emphasis, and nothing reads as primary.
- Exactly three feature cards in a row +8 — Features arrive in threes, as tradition demands — regardless of how many things the product actually does.
- Dependency sprawl +8 — 0 third-party asset hosts and 62 script files. Each sub-problem got whatever library was most popular in the training data, and nothing was ever consolidated.
What pulled it down
- Deliberate social preview −9 — Open Graph title and image were both authored.
- Hand-written ARIA −7 — 10 explicit accessibility attributes.
- Structured data −6 — JSON-LD is present — somebody thought about search.
- Semantic landmarks −6 — 5 landmark elements instead of a pile of divs.
- CSS custom property system −6 — 18 CSS custom properties — a real token layer.
- Canonical URL −4 — Canonical link is set.
Craft we looked for and did not find
These are the actionable half of the report. None of them are hard, and every one of them would have moved the number.
- Skip-to-content link
- prefers-reduced-motion honoured
- Self-hosted typography
- Hand-authored stylesheet
- No utility-class soup
What this scan cannot see
One request, no JavaScript executed. So everything below is invisible to us, and a page can be excellent or awful at all of it without moving the score:
- Domain registration age — needs WHOIS.
- Whether the nav's /about and /pricing actually resolve — needs a crawl, not one fetch.
- package.json dependency count, orphaned code, clashing abstractions, test coverage — needs the repo.
- Backend security shortcuts: string-built SQL, verify=False, missing auth on endpoints — needs the source.
- Whether row-level security or Firebase rules are actually switched on — needs the project.
- Console errors, hydration warnings and runtime 404s — needs a browser executing the page.
- Real Lighthouse numbers and horizontal scroll at 375px — needs a rendered viewport.
- Whether a JS-handled form posts anywhere — needs a submitted request.