Blog

Guides and use cases for the getsnap.dev API. New posts land under this list — nothing gets buried in an infinite feed.

Debugging 2026-10-10 · 8 min read

A 503 that could not happen: finding a Fastify lifecycle bug

A status code that disagreed with its own response body, four reproductions that all failed, and a framework bug where two async onSend hooks stop a rejected request from halting.

Tooling 2026-10-09 · 7 min read

AI agents can drive a browser. That is not a capture pipeline.

Where a computer-use agent genuinely wins, where it breaks as a pipeline, and why determinism, latency and cost shape decide it. They compose better than they compete.

Practice 2026-10-09 · 6 min read

Generated or captured: when a picture of a page is evidence

A model can produce a convincing image of a page; a capture records one. Where each is right, and the awkward middle — including our own popup removal.

Tooling 2026-10-09 · 6 min read

Chrome DevTools can screenshot a page. Here's where it stops.

DevTools captures a full page in two keystrokes and is the right tool most of the time. The specific points where it stops — reproducibility across machines, CI, batch, auth — and the self-hosted middle ground.

Case study 2026-09-20 · 6 min read

Team-owned Stripe subscriptions in 3 endpoints — how we shipped team billing without a per-seat model

How we shipped team-owned billing on a screenshot API. 3 endpoints (/checkout, /portal, /billing), 1 metadata field on the Stripe subscription, 0 migration required. Real code, real numbers, and why we deliberately chose flat-tier over per-seat.

Case study 2026-09-20 · 6 min read

We ran our own accessibility audit on our own site — 60 WCAG violations, fixed in 30 minutes

Live dogfooding walkthrough. POST /v1/audit vs. getsnap.dev found 60 color-contrast violations from three color patterns. Root-caused, patched, re-audited to zero. Total API spend: $0.004.

Comparison 2026-09-20 · 9 min read

Puppeteer vs Playwright in 2026 — which one should you use?

Cross-browser support, auto-wait, network interception, trace viewer, Docker footprint. Feature-by-feature comparison for developers who just want to pick one and get on with it.

Tutorial 2026-09-20 · 8 min read

Generate branded PDF invoices from HTML in Node.js or Python

Ship pixel-perfect PDF invoices. Multi-page, headers/footers with page numbers, custom PDF metadata. Express + FastAPI stream-download patterns included.

Tutorial 2026-09-20 · 10 min read

Feed screenshots to GPT-4V, Claude, and Gemini — preprocessing that saves tokens

Slice tall pages under the 8000 px cap, strip cookie banners, extract metadata as free text. Cut vision token costs by 40–80% with the right preprocessing.

Tutorial 2026-09-20 · 8 min read

Dynamic OG image API for Node.js and Python

One endpoint (POST /v1/og-image), zero config. Full Node.js, Python, Next.js, Nuxt, and Astro integrations. How the caching makes it 4–12× cheaper than Cloudinary or Bannerbear.

Comparison 2026-09-20 · 12 min read

The best screenshot API in 2026: honest comparison of 5 options

Urlbox, ScreenshotOne, ScreenshotAPI, ApiFlash, and getsnap.dev — feature-by-feature, dollar-per-thousand, no marketing spin.

Tutorial 2026-09-20 · 6 min read

Generate Open Graph images with an HTML template — from scratch

Complete tutorial: design a 1200×630 OG image template in HTML, ship it as a screenshot endpoint, cache aggressively.

Use case 2026-09-20 · 5 min read

Monitor competitor pricing pages with scheduled screenshots + webhooks

A daily cron that captures 20 competitor pricing pages, delivers the images to your Slack, and archives them for compliance.