Ten YC S26 Homepages, One Scroll: A Live AI-Slop Teardown
I opened ten Y Combinator S26 startup homepages in ten tabs and scrolled each from sticky nav to footer. They converged into a single composite page. Here's that scroll, section by section, with every tell named where I saw it.
Ten tabs. Ten Y Combinator S26 companies, picked off the launch list more or less at random: a voice-agent thing, two dev-tooling plays, an AI CRM, a "compliance copilot," a vertical SaaS for dentists, a data-pipeline startup, an LLM-eval tool, an AI recruiter, and something doing invoices. Different problems, different markets, different founders who flew to San Francisco and lived on instant noodles for three months to build this.
I scrolled all ten from the top.
By the third tab I stopped reading the copy, because the copy didn't matter. The pages were the same page. Not similar — the same skeleton, the same section order, the same components in the same vertical sequence, rendered in slightly different accent colors. So instead of writing ten teardowns, I'm going to write one. I'm going to scroll a single composite homepage — the average of all ten — and stop at each section to point at the thing I'm looking at. Top to bottom. The way a visitor sees it.
Start at the top of the page.
Sticky nav: glass, blur, and a button that says "Get Started"
The header is fixed to the top. It's translucent. As I scroll, the content underneath ghosts through it with a soft blur — backdrop-blur-md, bg-white/70, a hairline border-b border-zinc-200/50. Nine of the ten had it. The tenth had the dark version: bg-zinc-950/80, same blur.
Logo on the left, set in a slightly-too-bold weight. Four nav links in the middle — Features, Pricing, Docs, Blog, always those, always in that order. On the right, two elements: a ghost "Log in" and a filled primary button. The button says "Get Started." If it doesn't say "Get Started" it says "Start for free" or "Get started free," which is the same three words wearing a hat.
The blur is the first tell, and it's a real one — I walked through why backdrop-blur on a sticky nav is a default, not a decision, and seeing it here on a compliance tool for hospitals tells me nobody asked whether a hospital's procurement lead wants frosted glass. They got it because the generator reaches for it the way your hand reaches for the light switch in your own house. Dark. Without thinking.
Keep scrolling. The nav stays. Everything else moves up underneath it.
Hero: Geist, 64 pixels, and a gradient you've met before
The fold. This is where the money is, where every founder spent the most time, and it's where the convergence is total.
Centered column. Headline in Geist or Geist-adjacent — the geometric sans with the flat terminals that has quietly become the new Inter, which is a sentence I can write because Geist is now its own AI font fingerprint. Roughly 60 to 72 pixels, font-bold or font-semibold, tracking-tight, two lines. The first line is a value claim. The second line is the value claim with the noun swapped. "Ship faster. Sleep better." "Close more deals. Do less work." A verb, a period, a verb, a period.
And there — in the headline, or the eyebrow above it, or the CTA below it — the gradient. bg-gradient-to-r from-blue-600 to-violet-600, clipped to text or sitting behind a button. Six of ten had blue-to-violet specifically. One went indigo-to-cyan, one teal-to-blue, the dentist SaaS went pink-to-orange and felt like a rebel for it. This single gradient is the most reliable AI signature on the web right now; I've tracked exactly why every model defaults to from-blue-600 to-violet-600 and the answer is depressing — it's the statistically safest two-color pull from the Tailwind palette, so it wins every coin flip the model makes.
Subheadline underneath, text-zinc-500, text-lg, max-width clamped to about max-w-2xl and centered, one-and-a-half sentences explaining the headline in slightly more words. Then two buttons side by side: the filled primary ("Get Started," again) and a ghost secondary with a tiny play-triangle icon that says "Watch demo" or "Book a demo."
Below the buttons, a line of text-sm text-zinc-400: "No credit card required." All ten. Even the enterprise compliance tool that does not have a credit-card flow at all, because it sells annual contracts to legal departments. The line is there because the line is always there.
Below that, the product screenshot in a browser-chrome mockup with the three traffic-light dots, tilted slightly or sitting flat with a big soft shadow and a rounded-xl border. The screenshot is dark even when the site is light, because the dashboard is always dark.
I've spent maybe four seconds in the hero and I already know it was generated. Not suspect — know. This is the part I mean when I say you can call an AI site in thirty seconds: you don't audit, you pattern-match the fold, and the fold is a fingerprint.
Scroll past it.
Logo cloud: "Backed by the best," in grayscale
A thin strip. Centered label above it in text-sm, uppercase, tracking-wider, text-zinc-400: "Trusted by teams at" or "Backed by" or "Powering teams at." Then a row of five or six company logos.
They are grayscale. grayscale opacity-60, and frequently hover:grayscale-0 so they bloom into color when your mouse passes — a micro-interaction nobody asked for on a trust signal. Half of them, for a company that launched four days ago, are not real customers. They're the YC logo, the investors' logos, and the names of two tools the product integrates with. "Trusted by" is doing a lot of work to mean "has heard of."
Some of these had the marquee variant — the logos slide horizontally on an infinite CSS loop, animation: scroll 20s linear infinite, so the trust bar is also a treadmill. A treadmill of six logos, three of which are the same accelerator. The motion exists because the section looked empty and motion fills space; it's the same reflex as the fade-in-up-on-scroll that animates every section into view, except now it never stops.
Grayscale logos read as "credibility" to the generator because real enterprise sites use grayscale logos. The difference is real sites have logos worth desaturating.
Keep going.
The 3-feature grid: emoji in a pastel circle, times three
Here's the section I could draw blindfolded.
Centered section header — "Everything you need to [verb]" — with a text-zinc-500 subhead under it. Then three cards in a grid grid-cols-1 md:grid-cols-3 gap-6. Three. Always three, because three is what fits in one row at desktop width and the generator never asks whether the product has three features or seven or one that actually matters.
Each card: rounded-2xl border border-zinc-200 p-6, white background, soft shadow. At the top of each card, an icon. And the icon is the tell — it's an emoji, or a Lucide line-icon, sitting inside a circle filled with a 100-weight pastel. ⚡ in a bg-blue-50 circle. 🚀 in a bg-violet-50 circle. 🔒 in a bg-green-50 circle. The lightning bolt means "fast." The rocket means "launch" or "growth" or "we ran out of metaphors." The padlock means "secure / enterprise / SOC 2 soon."
Under the icon, a three-word feature title in font-semibold. Under that, two lines of text-zinc-500 body copy that restate the title as a sentence. The three cards are identical in structure, identical in length — the copy is padded or trimmed so all three bodies wrap to exactly two lines and the cards stay the same height. That visual evenness is the giveaway: real features are not the same size, so a perfectly even three-up grid is a layout pretending it has content. I made the whole argument that three identical cards actively kill conversion precisely because the symmetry that looks tidy reads as "nobody here had three distinct things to say."
On hover, each card lifts. hover:-translate-y-1 hover:shadow-lg transition. The same one-pixel float on all three, the hover-lift that has become the default micro-interaction, applied to cards that aren't even links half the time. You hover, it rises, nothing happens. It's a fidget toy.
Eight of the ten had this section verbatim. The other two had it as a grid-cols-3 of feature rows instead of cards, which is the same content in a thinner box.
Scroll.
Pricing: three tiers, and the middle one is 1.05× bigger
Three columns again. Free, Pro, Enterprise. Or Starter, Growth, Scale. Three.
The middle card is scaled up. Literally — scale-105, or it's got border-2 border-blue-600 while the others have border-zinc-200, or it's lifted with a deeper shadow, or all three at once. And it wears a little badge pinned to its top edge: "Most Popular." Pinned with absolute -top-3 left-1/2 -translate-x-1/2, a rounded-full bg-blue-600 px-3 py-1 text-xs text-white pill.
It is most popular the way the gas station hot dog is most popular: the sign chose it, not the customers. The product launched ninety-six hours ago. Nothing is most popular yet. The badge is a conversion pattern the generator learned from Stripe and Linear and ten thousand sites downstream of them, and it ships it on day one because the pricing template has a featured: true flag and somebody set it on the middle tier because the middle tier is where you set it.
Each tier: a name, a price in big font-bold numerals with a text-zinc-500 "/month" beside it, a one-line description, then a list of features with green checkmarks — — stacked in a column. The free tier has the same checkmarks in text-zinc-300 for the features it doesn't include, so the list length matches across all three columns. Even the absences are aligned.
CTA button at the bottom of each card. The middle one's button is filled and colored; the outer two are ghost-outlined. Of course it is. The page has been training your eye to click the colored thing since the nav, and here it cashes in.
I want to be fair: pricing has to live in columns, that's the format. But the scale-105-plus-"Most Popular"-plus-colored-middle-button combination is so universal that its presence tells you the founder didn't design a pricing page, they accepted one. If you ran a CSS audit down this section you'd find the transform, the conditional border, and the absolutely-positioned badge in under a minute — the three together are a signature, not a coincidence.
Past pricing.
Testimonial: a round avatar, five gold stars, and a quote about "game-changer"
One quote, centered, big. Or three quotes in — say it with me — a three-column grid.
The single-quote version: large text-2xl italic-ish quote, then a row underneath with a round avatar (rounded-full, 48 pixels, frequently an AI-generated or stock face), a name in font-medium, and a title in text-zinc-500: "Jane Doe, Head of Engineering at [Company]." Above or below, five gold stars. ★★★★★. Five. Never four-and-a-half, never four — five, because the star component defaults to filled and nobody set it lower.
The quote itself is built from a small vocabulary. "Game-changer." "Saved us hours." "Couldn't imagine going back." "The team is incredibly responsive." It's the verbal equivalent of the blue-violet gradient — the safest pull from the distribution. Real testimonials have a weird specific detail in them, a number, a grudging caveat, a sentence that sounds like a human typed it in a hurry. These have none. They have shape.
The three-up version replaces depth with breadth: three round avatars, three five-star rows, three "game-changer"-adjacent quotes, all the same height. The evenness is back. By now you can feel it as a texture — everything on this page comes in threes and everything in the three is the same size.
This is the deepest part of the convergence, and the saddest. I've argued that the reason every AI site looks the same isn't laziness but gravity — the model is pulled toward the statistical center of every decision, and "what does a testimonial look like" centers on exactly this: round avatar, five stars, "game-changer." Ten founders solving ten different problems all landed on the same fake person saying the same fake sentence.
Almost at the bottom. One section left.
Big-CTA footer: "Ready to get started?" on a gradient slab
The page ends the way it began: by asking you to get started.
A full-width band, usually the boldest color on the page — a bg-gradient-to-br from-blue-600 to-violet-600 slab, or bg-zinc-950, with the content reverse-knockout in white. Centered headline, text-4xl font-bold: "Ready to get started?" or "Ready to ship faster?" or "Start building today." Below it, a single sentence of reassurance. Below that, the button — filled, white-on-color or color-on-dark, saying "Get Started" for the third time on this page. And underneath, one more time, in small type: "No credit card required."
Then the actual footer: four columns of links (Product, Company, Resources, Legal), a logo with a one-line tagline in the leftmost column, a row of social icons, and a text-sm text-zinc-400 copyright line. Four columns. The features came in threes; the footer comes in fours; the page never once chose a number because the content demanded it.
I closed the tenth tab. Here's the gut-punch: ten teams who genuinely built ten different things — a voice agent, a compliance copilot, a tool for dentists — and the front door to each is so identical that I composited them into one page without losing a single section, and you read that page just now and recognized it, because you've been to it a hundred times this year. The product behind each of these might be extraordinary. I'll never know, because the homepage told me, in its sticky blurred nav and its blue-violet Geist headline and its three pastel-circle emoji and its scale-105 "Most Popular" and its five-star "game-changer" and its "Ready to get started?", that nobody inside the building made a single decision a generator wouldn't have made for them. The page isn't bad. It's worse than bad. It's anonymous — and anonymous is the one thing a homepage can't afford to be on the day you launch.
SHIP CODE THAT LOOKS INTENTIONAL
Scan your frontend for AI patterns. Generate a unique design system. Stop shipping the same blue gradient as everyone else.