GitHub - alexjackhughes/yc · GitHub
Skip to content
alexjackhughesPublic

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

YC Hero Gallery

Landing-page hero screenshots for 2,866 Y Combinator companies across every batch from Winter 2022 to Fall 2026, plus a keyboard-driven gallery app to browse them.

Great for studying how YC startups pitch themselves above the fold — headline copy, layout trends, color palettes — across five years of batches.

Quick start

cd viewer
npm install
npm run dev

Open http://localhost:3000 and browse.

Keyboard shortcuts

Key Action
← → ↑ ↓ Move around the grid
Enter Open the selected screenshot
← → / j k Flick between screenshots while open
Esc Close
[ / ] Older / newer batch
Home / End First / last company in batch

On mobile, use the burger menu in the bottom bar to switch batches.

What's in here

viewer/                 Next.js + shadcn/ui gallery app
  public/shots/         2,866 hero screenshots (1440×900), one folder per batch
    W22/ S22/ ... F26/  W=Winter, X=Spring, S=Summer, F=Fall
    <yc-slug>.png       filename = company slug on ycombinator.com
data/all.json           Full YC directory dump (names, one-liners, websites, batches)
screenshot.mjs          Playwright script that captured the screenshots
failed-sites.csv        ~110 sites that couldn't be captured (dead domains, bot walls)

Each screenshot is the above-the-fold view of the company's site at 1440×900, captured August 2026. Files are named by YC slug, so viewer/public/shots/S23/letter-ai.png is Letter AI and its profile lives at ycombinator.com/companies/letter-ai.

Deploying

The app deploys to Vercel as-is — set the project's Root Directory to viewer. Screenshots live inside viewer/public, so they ship as static assets with the build.

Updating for new batches

Company data comes from the yc-oss/api mirror of YC's directory, which updates daily:

curl -s -o data/all.json https://yc-oss.github.io/api/companies/all.json
node screenshot.mjs                  # resumable: only shoots missing companies
node viewer/scripts/build-manifest.mjs   # refresh the gallery's index

screenshot.mjs skips anything already captured, so re-running after a new batch drops only fetches the new companies. Failures are appended to failures.csv.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages