Skip to content

Project

Satori

Open-source library that renders HTML and CSS into SVG or PNG images, powering Next.js's next/og Open Graph image generation feature.

Known aliases

  • Satori
  • Satori + ReSVG
  • vercel/satori

Current stories

buildOne report1 publisher

SvelteKit OG 4.4 renders OG images on the main thread or in a web worker

SvelteKit OG 4.4 adds a client entry that renders OG images in the browser or a web worker, with no server request. A dev.to post says it targets live editor previews and adapter-static sites that have no server.

Publishers:dev.to

Reality

Evidence50
Adoption
Not scored
Hype gap−5
Incentives
Not scored
Confidence55
buildOne report1 publisher

Next.js next/og passed unescaped input into the SVG that libvips, librsvg and libxml2 parse

Satori, the JSX-to-SVG step behind Next.js next/og, put external input into SVG unescaped, per a dev.to explainer of CVE-2026-94545. The explainer says code execution would need the injected SVG to corrupt memory in a native parser, while SSRF needs only the injection.

Publishers:dev.to

Reality

Evidence50
Adoption
Not scored
Hype gap+25
Incentives
Not scored
Confidence45
buildOne report1 publisher

Satori's SVG escaping flaw reaches remote code execution through Next.js ImageResponse on Node

Satori's SVG escaping flaw exposes Next.js 16.2.0 and every release before 16.3.6 to remote code execution when apps pass attacker input to next/og on Node. The step where app data becomes SVG markup needs the escaping discipline teams already give HTML and SQL.

Publishers:dev.to

Reality

Evidence45
Adoption
Not scored
Hype gap+15
Incentives
Not scored
Confidence50
buildOne report1 publisher

Satori's missing WOFF2 support puts four Geist .ttf files in a Next.js repo

Satori, the renderer behind next/og, cannot read WOFF2, so one Next.js site commits four Geist .ttf files to set its preview cards in the site's own type. The card takes its logo and palette from source, but its font is a second copy that someone has to keep current.

Publishers:dev.to

Reality

Evidence45
Adoption
Not scored
Hype gap0
Incentives20
Confidence50
buildOne report1 publisher

Ordering the font array is how satori renders hanja instead of tofu boxes

A Korean saju service found that satori's HTML/CSS subset gives out at the hanja well before it gives out at Latin text. The fix was a two-face fallback array plus a module-level cache for two 2 MB TTFs.

Publishers:dev.to

Reality

Evidence62
Adoption30
Hype gap−8
Incentives38
Confidence55
buildOne report1 publisher

The route nothing imports: how eleven broken endpoints hid behind one Search Console error

A Next.js file convention generated eleven locale routes that had never returned a 200. The only monitor that noticed was Google's crawler, and it had only tried one of them.

Publishers:dev.to

Reality

Evidence54
Adoption14
Hype gap+10
Incentives32
Confidence46