Notes on generating images from HTML
HTML to PDF, dynamic OG images, screenshots, and rendering templates over REST or MCP. Practical writeups from the team building propzapi.
APITemplate.io alternative: same Jinja2, pay-as-you-go
APITemplate.io runs a visual editor on a subscription. propzapi runs the same Jinja2, so your template moves by copy-paste, but it bills pay-as-you-go from $5, screenshots any URL, and verifies the text actually rendered. An honest teardown with 2026 pricing, a feature matrix, and a copy-paste migration. Where each one wins, with a verified render call.
Read article →
Beyond @vercel/og: dynamic OG images with full CSS
@vercel/og is free and right for most OG images. But Satori has no CSS grid, no system fonts, a WOFF2 gap and a 500KB bundle cap, and unsupported CSS fails silently. Where it breaks (grid, fonts, the 'works locally, blank in prod' font error), and when to render the same HTML in a real browser instead. Sourced to Vercel docs + the Satori issues.
→
The best HTML-to-image APIs in 2026: an honest comparison
Five tools claim to turn HTML into an image. They don't cost the same or do the same job. A sourced comparison of Bannerbear, Placid, htmlcsstoimage, ScreenshotOne and propzapi. The two billing models, who each one is for, why all five now ship MCP so it's no longer a tiebreaker, and where propzapi loses. With a verified render call.
→
Dynamic QR Code API: Editable, Trackable QR Codes
Create a QR whose destination you can change after it's printed, and count every scan — over plain REST. How dynamic codes work (a short URL you host), the create/re-point/analytics calls verified live, device + country scan tracking, an honest comparison with Bitly/QR TIGER/Uniqode, and why per-credit beats a monthly subscription with per-code caps.
→
QR Code API: Generate a Scannable QR in One Call
Generate a QR code with an API — encoded straight into a branded card, ticket or your own template, not a bare square you have to composite. Static vs dynamic explained honestly, why scans aren't tracked, how to guarantee it scans, an honest comparison with QuickChart and GoQR, and what it costs. Verified: the rendered QR decodes back to the exact URL.
→
Image Generation MCP Server: Real Images for AI Agents
Give an AI agent an image generation MCP server that renders your exact text and data, not a diffusion model's guesses. How the generate_image tool works over MCP, why diffusion models still can't spell a price, render-and-verify as proof the text landed, an honest comparison of image MCP servers, and what it costs. Verified against the live API.
→
URL to PDF: Convert a Live Web Page to PDF in 2026
Convert a live URL to PDF with Puppeteer, Playwright or a hosted API. Why the PDF comes out blank on single-page apps, how to load lazy content and capture logged-in pages, why wkhtmltopdf is unsafe now, the AWS Lambda trap, and a real pricing comparison. Verified Node, Python and cURL.
→
Generate PDF from HTML: Node and Python in 2026
Turn HTML and CSS into a real PDF with Puppeteer, Playwright or WeasyPrint, and know which to reach for. Why backgrounds come out blank, how page breaks and running footers actually work, the wkhtmltopdf CVE you should avoid, the AWS Lambda 250MB trap, and when a hosted API is cheaper. Verified Node, Python and cURL.
→
OG image size: the 2026 guide to every platform
The og image size that renders everywhere is 1200×630 at 1.91:1. The real per-platform sizes and file-size limits, the og:image:width trick that stops blank first-shares, why previews break, and how to generate one per page.
→
Automated screenshots: Playwright vs a screenshot API
Take automated screenshots at scale without a browser eating your server. The Playwright and Puppeteer code, why full-page shots come out blank, the AWS Lambda 250MB trap, scheduling with GitHub Actions cron, and the honest break-even where a hosted API wins.
→
HTML to Image: 5 Ways to Convert HTML and CSS to a PNG
Five real ways to turn HTML into a PNG: client-side html2canvas, self-hosted Puppeteer, node-html-to-image, no-browser Satori, and a hosted API. The trade-off each one hides, why wkhtmltoimage is dead, the AWS Lambda size trap, and which to pick — with verified Node, Python and cURL.
→
Screenshot API: turn any URL into an image in one call
Capture any public web page as a PNG, JPEG or WebP over one HTTP call. Why self-hosting Puppeteer isn't worth it, an honest comparison with ScreenshotOne, Urlbox and ApiFlash, and when to pick which — with verified cURL, Node and Python.
→
HTML to Image API: turn HTML and CSS into a PNG in one call
Render your own HTML and CSS to a PNG, JPEG or WebP in headless Chromium and get a hosted URL back. Why self-hosting Puppeteer isn't worth it, formats and retina scale, billed on delivery, with cURL, Node and Python.
→
Bannerbear alternative: a pay-as-you-go image generation API
An honest comparison. propzapi renders images from your own HTML templates, pay-as-you-go from $5 with no subscription, and screenshots URLs too — while Bannerbear keeps its no-code editor and video. Where each one fits, with code.
→
Open Graph Image API: generate dynamic og:image URLs in one call
Give every blog post, product and profile its own share image. Store one 1200×630 template, sign a per-page URL, and drop it in og:image. Full Chromium CSS, cached free on refetch, with cURL, Node and Python.
→
HTML to PDF API: convert HTML to PDF in one call
Send an HTML template and your data, get a finished PDF back over REST. How propzapi renders a page with headless Chromium, why wkhtmltopdf lets you down, and copy-paste cURL, Node and Python.
→