Building the product · Edition No. 1 · 21 Aug 2026

vercel/satori

Turns HTML/CSS into images — mass-produce thumbnail variants and blog OG images from one template.

← Building the productRead the whole edition →

13.9k stars · MPL-2.0 · 0.33.4 (2026-08-24)

Turns HTML/CSS into images — mass-produce thumbnail variants and blog OG images from one template.

Repo detailsthe review · specs · pros & cons · install

What it is

A library that renders a subset of HTML and CSS into an image. It's the engine behind Vercel's automatic social-preview images, and it takes milliseconds per render with no design software involved.

Why it matters

Thumbnail click-through is the highest-leverage variable on YouTube, and hand-editing variants is exactly the chore that stops people testing. Define the layout once and generating an English version, a Russian version and six headline variants becomes a loop rather than an afternoon. The same template then produces the OG images for your blog posts, so the site and the channel finally look like one brand instead of two.

Stars13.9k
LicenceMPL-2.0
Latest0.33.4 (2026-08-24)checked 7 Sep 2026
Written inTypeScript
Setup effort
3 / 5
Payoff
4 / 5
Good
  • Bilingual variants are a one-line change — Cyrillic renders fine with the right font file
  • No API cost, no GPU, no subscription
  • Doubles as the blog's OG-image generator, unifying your visual identity
Watch for
  • It's a rendering primitive, not an app — you need a small wrapper around it
  • Only a subset of CSS; complex flex/grid and filters silently differ
  • Does nothing for the actual A/B test — that still happens in YouTube Studio
Replaces

The same template then produces the OG images for your blog posts, so the site and the channel finally look like one brand instead of two.

How to get it

A Node script on your Mac, or a tiny endpoint on the VPS that both your site and your upload script call.

Screenshots
vercel/satori: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.