Generating OG cards without Headless Chrome: a fast Rust generator 🖼⚡️
Takumi renders JSX to PNG, WebP, SVG and JPEG without a browser, with modern styling and support for multiple runtimes.

Are you still drawing OG previews for posts manually in Figma? Or have you set up a heavyweight headless Puppeteer/Playwright instance in a Serverless function that devours memory, takes 3 seconds to start and periodically times out?
It looks like that approach’s days are over. Meet Takumi, a library for quickly rendering JSX components directly into images (PNG/WebP/SVG/JPEG), written in Rust and requiring no browser under the hood.
What makes it special, and how it works:
- No Chromium: It has its own super-fast layout and rendering engine. Generating a card takes just milliseconds, with minimal memory consumption.
- Familiar DX (JSX/TSX): You describe the image template as an ordinary React component. Pass in the post’s metadata (title, tags, author avatar, date stamp), and get a ready-to-use image binary back.
- Modern feature support: Flexbox, custom fonts (TTF/OTF/WOFF2), gradients, effects (blur, shadow) and even basic SVG work out of the box.
- Runs everywhere: Thanks to Rust and WASM builds, it’s easy to run in Node.js, Deno, Bun or Edge functions (Vercel, Cloudflare Workers).
An excellent, super-lightweight alternative to solutions like @vercel/og (satori) if you want even more speed and independence from a heavyweight runtime.
How do you currently generate previews for your projects/blogs? Are you still assigning this job to Puppeteer, or have you already moved to Satori / custom SVG generators?