Worked examples framer.com
Is framer.com vibe coded?
Motion-first, and a test of whether we punish that fairly. 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.
www.framer.com
Hand-written
Somebody sat down and made decisions. Several of them were opinions.
- Vibe tells
- 10
- Craft tells
- 9
- Confidence
- high
Plenty of signal to work with.
Where the score came from
- Platform fingerprintsnone
Artefacts of the tool, not of taste
- Colour, type and surface4 hits
The visual defaults, applied unedited
- Layout and architecture2 hits
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 build2 hits
What is visible in the shipped code
- How it behaves1 hit
Weight, mobile, accessibility, SEO — where the money leaks
- Human craft9 hits
Evidence of deliberate decisions
Evidence
19 findings- +13
Gradient clipped headline text
The headline is a gradient clipped to text. It was a flourish; it became a reflex.
- +12
A “trusted by” bar with nobody in it
Social proof whose logos are placeholders, greyed-out stand-ins or unnamed. This is the one tell on the list that crosses from tacky into legally interesting.
- −9
Deliberate social preview
Open Graph title and image were both authored.
- +8
Sparkles and/or rockets
The house emoji of generated marketing copy are present.
- 🚀
- 🔥
- +8
Glowing orbs behind a permanently dark page
14 glow surfaces over a permanently dark ground. Learned from crypto and AI launch pages, where it was atmosphere. Here it decorates nothing.
- +8
Comments explaining the obvious
Humans comment where the logic is surprising. Models comment everywhere.
- // Initialize shopXtools with version first
- // Check if user has interacted with Framer Cookie Banner
- // Initialize listeners on first call
- // Initialize store configuration
What we read
- title
- Framer: AI design agent
- generator
- Framer 7eb75c2
- server
- Framer/6443c08
- status
- 200
- html
- 2.09 MB
- words
- 1,701
- fetched in
- 753 ms
Reading this score
framer.com landed on 9/100, which puts it in the hand-written band. That number is not a percentage and not a probability — it is strength of evidence: 45 points of tells, damped by craft, less 60 points of deliberate decisions, mapped through one logistic curve.
What pushed it up
- Gradient clipped headline text +13 — The headline is a gradient clipped to text. It was a flourish; it became a reflex.
- A “trusted by” bar with nobody in it +12 — Social proof whose logos are placeholders, greyed-out stand-ins or unnamed. This is the one tell on the list that crosses from tacky into legally interesting.
- Sparkles and/or rockets +8 — The house emoji of generated marketing copy are present.
- Glowing orbs behind a permanently dark page +8 — 14 glow surfaces over a permanently dark ground. Learned from crypto and AI launch pages, where it was atmosphere. Here it decorates nothing.
- Comments explaining the obvious +8 — Humans comment where the logic is surprising. Models comment everywhere.
- Fixed pixel widths that will overflow a phone +8 — Hard pixel widths wider than a phone. Layouts break at sizes nobody prompted for, because desktop was the only viewport that got looked at.
- Backdrop blur everywhere +7 — 12 blurred surfaces.
- The rule-of-three cadence +6 — 5 triplet lists and 0 “not just X — it's Y” constructions. Rhythm borrowed from marketing prose, with none of the content.
What pulled it down
- Deliberate social preview −9 — Open Graph title and image were both authored.
- prefers-reduced-motion honoured −8 — Motion preferences are respected in inline styles.
- Hand-written ARIA −7 — 137 explicit accessibility attributes.
- Self-hosted typography −7 — Fonts are self-hosted rather than pulled off a CDN.
- No utility-class soup −7 — Not one Tailwind utility class in the markup.
- 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 — 9722 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.
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.