{
  "id": 8152752,
  "title": "I got tired of $20/mo screenshot APIs, so I built a free one on top of the browser I already had to run anyway",
  "url": "https://urgent.news/2026/09/18/i-got-tired-of-20-mo-screenshot-apis-so-i-built-a-free-one-on-top-of",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-18T02:20:00.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/websitegeek/i-got-tired-of-20mo-screenshot-apis-so-i-built-a-free-one-on-top-of-the-browser-i-already-had-to-59h5"
  },
  "original_language": "en",
  "account": "After researching HTML to image APIs, the author found that they all charged between $15 and $25 per month before any images were rendered. The author decided to create a free alternative to this expensive pricing model. The built tool allows users to input HTML and CSS, and in return, it provides a real image file, not a canvas hack or a client-side screenshot. The image is created using server-side Puppeteer against the chromium repository, ensuring that the resulting image mirrors what any visitor would see in their browser, including fonts and gradients. The service is completely free with no sign-up required; it supports PNG output up to 800x800 pixels with a maximum of 10 renders per day. Paid tiers offer JPEG, WebP, AVIF, SVG, and SVG-wrapped exports, retina scale (1x–3x), sizes up to 4000x4000 pixels, full-page and element-selector capture, and transparent backgrounds. The tool also includes six preset sizes for popular platforms, such as Instagram Post/Story, Facebook/OG share image, X card, YouTube thumbnail, and a 16:9 slide. A custom size option is also available. The author enjoyed the challenge of optimizing the serverless functions, which were prone to cold-start latency during the rendering process. They implemented a caching mechanism to launch a single browser instance for warm function invocations, eliminating the multi-second cold start. Additionally, a priority queue was added to ensure paid-tier requests are served ahead of free requests when a warm instance is busy. The failure mode was also improved, with the service now degrading gracefully instead of failing entirely when encountering a slow external image, thus preserving the integrity of the rendered image. The service can be used for generating Open Graph/share images from real data, quick social media crops, or converting HTML invoice/certificate templates into downloadable images on the fly. The free trial can be accessed at websitegeek.net/html-to-image. The author is eager to hear about any issues or bugs to continue improving the service.",
  "summary": "Every \"HTML to image\" API I priced out wanted $15–25/month before I'd rendered a single image. What they're actually doing under the hood is running headless Chrome and taking a screenshot — which is real infrastructure, but not $20/mo-per-seat real. So I built the free version I wanted to exist, and it's live now as part of a small suite of tools I run under WebsiteGeek. What it actually does…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}