Blog / 46 articles

Notes from building a screenshot API

Fixes for headless Chrome errors I ran into, guides for tricky pages and what it takes to run screenshots in production.

Ruby Screenshots with Selenium vs Ferrum — Setup, Code, and Trade-offs

Ruby doesn't ship with a browser rendering engine, so taking website screenshots requires an external tool. This article covers three approa...

Playwright vs Puppeteer vs API: 3 Ways to Generate a PDF from a URL

Generating PDFs from live web pages sounds simple until you try it. Here's how to do it with Playwright, Puppeteer, and a screenshot API, wi...

Debug Dark Mode Rendering in Playwright and Puppeteer

Most websites now support dark mode through prefers-color-scheme. Here's how to capture screenshots in dark mode using Playwright, Puppeteer...

Making headless Chromium look human: 10 stealth patches I ship in production

About a third of the sites I tried to screenshot returned a Cloudflare challenge page. Here are the ten stealth patches I now ship inside sc...

How I hide cookie banners, ads and chat widgets in screenshots

Last month a cookie banner ate 40% of my screenshot. Here's the three-layer approach I built to block cookie dialogs, chat widgets and ads b...

How to take a website screenshot with Java (Selenium & Playwright)

I kept putting off the Java tutorial because I expected mountains of boilerplate. Turns out Java's built-in HttpClient makes API calls almos...

How to Pass Cookies and Auth Headers to a Screenshot API

I kept running into the same problem — send a dashboard URL to a screenshot API, get back a picture of the login form. Turns out, passing a...

Screenshot API vs Puppeteer/Playwright: when to build and when to buy

I built both sides of this equation — a Playwright renderer and a screenshot API on top of it. Most "build vs buy" articles are written by A...

Full-page screenshots and lazy loading: why your captures come out blank and how to fix it

Lazy loading breaks automated full-page screenshots because headless browsers do not scroll. Working fixes for Playwright and Puppeteer with...

Responsive Testing: Capture Any Device Viewport

How to capture mobile and tablet screenshots of any website with a screenshot API. Correct viewport sizes for iPhone, iPad, and Android, the...

Capturing Screenshots with chromedp in Go: Full Guide

Learn how to capture website screenshots with Go using two approaches: chromedp for local browser automation and a screenshot API for produc...

How to take a screenshot of a specific element on a web page

Sometimes you don't need a screenshot of the entire page — just one element. A pricing table, a chart, a widget. Here's how to capture a spe...

Screenshot API in a few clicks

Free plan includes 200 screenshots every month. No credit card required.

Sign up → copy your key → make your first call