How to Convert HTML to an Image in PHP
Convert PHP-generated HTML to PNG with Chrome PHP, Browsershot or the typed HCTI client. Includes a receipt template, cropping and asset waits.
HTML/CSS to Image Blog
RSS feedFeature announcements, customer spotlights and a look at the how we build HCTI.
Generate multiple images from saved templates in one API request, with shared defaults and per-image variations.
Code examples for screenshots, PDFs, and Open Graph images.
Convert PHP-generated HTML to PNG with Chrome PHP, Browsershot or the typed HCTI client. Includes a receipt template, cropping and asset waits.
Render HTML as a PNG with Puppeteer or Playwright in Node.js, capture one element, wait for assets, or use the typed HTML/CSS to Image client.
Generate PNGs from HTML in Python with Playwright or the typed HCTI client. Fill a template from a dict, wait for web fonts and render a whole batch.
How we replaced hand-written enum switches across HCTI with an attribute-driven source generator, why we open-sourced it and how we made it fast.
Manage API keys, proxies, storage destinations and OG Image Configs through code, with new MCP tools and granular permissions.
How we combine EF Core, PlanetScale branches, and CI for safer production database migrations.
Give every page on your website an automatic, up-to-date social sharing image with one URL pattern.
How we use Pulumi and shared C# projects to keep generated configuration, constants and Cloudflare Worker bindings aligned with the app.
How generating OG images for our new blog and feature pages led to templatable image URLs, screenshot-aware pages and flexible custom request headers.
Store generated images directly in your own S3 or S3-compatible bucket with HTML/CSS to Image.
Learn how and why to generate personalized product previews for custom merch, then carry those images from checkout through order fulfillment.
How HCTI handles runtime performance, download size, trimming, loading experience, and browser testing for a production Blazor WASM editor.
How HCTI uses MemoryPack, read-time schema repair, and MagicOnion to store and transport a deeply typed template model.
How HCTI turns typed template models into deterministic CSS shared by a Blazor editor and a server-side HTML renderer.
How HCTI kept Handlebars for content while extending template variables to colors, sizes, images, and other strongly typed editor properties.
How we integrate TypeScript into a Blazor WebAssembly application without making the two runtimes fight over state, rendering, or browser interactions.
How the HCTI template editor uses generated paths, typed tracking facades, transactions, and separate preview state to manage complex edits.
How typed models, Roslyn-generated property descriptors, shared input components, and common rendering contracts keep a large Blazor editor consistent.
How we designed a browser-based template editor around typed models, efficient change tracking, code generation, deterministic CSS, and testability.
Learn about how our new editor offers the best of both worlds: rich interactive visual design while keeping things grounded in HTML/CSS implementation.