Field notes

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.

htmlcsstoimage Alternative: When It's Worth Switching
Comparison Latest
Aug 29, 2026 · 10 min read

htmlcsstoimage Alternative: When It's Worth Switching

Most "htmlcsstoimage alternative" pages just claim to be cheaper. This one is honest: htmlcsstoimage is cheap, mature, and matches propzapi on formats, PDF, screenshots and MCP, and cheaper rivals (Rendex, html2img) undercut it further. propzapi is pricier and wins exactly one thing: render-and-verify, proof the output rendered right. When that is worth switching for (invoices, certificates) and when it is not (OG cards). Sourced 2026 pricing, an honest feature table, and a migration path.

Read article →
More writing
Certificate Generation API: Render Certificates From Data
Use case Aug 29, 2026 · 11 min

Certificate Generation API: Render Certificates From Data

"Certificate API" means two things, and mixing them up picks the wrong tool. Render APIs (propzapi, RenderForm, Bannerbear) turn a template plus data into a certificate file; credential platforms (Certifier, Accredible) add a public verify page, wallet and revocation. Which you actually need, how to generate certificates in bulk from a roster, and the one thing no render API does: prove every recipient's name rendered right. Verified render, sourced 2026 pricing, and an honest line on where propzapi stops.

→
Canva API Alternative: No Enterprise Plan Needed
Comparison Aug 27, 2026 · 11 min

Canva API Alternative: No Enterprise Plan Needed

Canva's Autofill API is Enterprise-only (30+ seats, sales-quoted). The real self-serve alternatives, honestly split into editor-first tools (Templated, Imejis, Bannerbear) for a visual canvas and code-first render APIs (propzapi, htmlcsstoimage) for HTML templates you keep in your repo. Sourced 2026 pricing, an honest concession on where the editor tools win, and the one thing none of them or Canva does: verify the output rendered. Verified certificate render and cURL.

→
wkhtmltopdf Alternative: What To Use In 2026
HTML to PDF Aug 26, 2026 · 12 min

wkhtmltopdf Alternative: What To Use In 2026

wkhtmltopdf is abandonware: archived in 2023, last release 2020, and carrying an unpatched 9.8 SSRF CVE. Which alternative fits your stack (Puppeteer, WeasyPrint, Gotenberg, DocRaptor, or a hosted API), how to migrate one template at a time without your invoices silently breaking, self-host vs hosted with the real RAM cost, 2026 pricing, and the step every other guide skips: proving the new output actually rendered. Verified Node and cURL.

→
PDF Invoice API: Generate Invoices From HTML
HTML to PDF Aug 25, 2026 · 11 min

PDF Invoice API: Generate Invoices From HTML

Turn an HTML invoice template plus your JSON into a finished PDF over one call: loop the line items, format the money with a currency filter, and get back proof the total actually rendered as visible pixels, not clipped. The four CSS gotchas that wreck invoice PDFs, why wkhtmltopdf is out, self-host vs hosted, and 2026 pricing against DocRaptor, APITemplate.io and CraftMyPDF. Honest on where each one wins.

→
APITemplate.io Alternative: Same Jinja2, Pay-As-You-Go
Comparison Aug 24, 2026 · 11 min

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.

→
Beyond @vercel/og: Dynamic OG Images With Full CSS
OG Images Aug 21, 2026 · 11 min

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
Comparison Aug 20, 2026 · 11 min

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
QR Codes Aug 19, 2026 · 9 min

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
QR Codes Aug 18, 2026 · 9 min

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
Agents & MCP Aug 17, 2026 · 9 min

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
HTML to PDF Aug 14, 2026 · 10 min

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
HTML to PDF Aug 12, 2026 · 10 min

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
OG Images Aug 11, 2026 · 9 min

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
Screenshots Aug 10, 2026 · 10 min

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
HTML to Image Aug 7, 2026 · 11 min

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
Screenshots Aug 6, 2026 · 10 min

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
HTML to Image Aug 5, 2026 · 9 min

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
Comparison Aug 4, 2026 · 8 min

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
OG Images Aug 3, 2026 · 9 min

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
HTML to PDF Aug 3, 2026 · 9 min

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.

→