The open source screenshot API I run in production on Vercel
Puppeteer-based screenshot service packaged as an npm module. Powers UXCanvas, ShadcnThemer, and more.
The same need kept coming up across different projects — take a screenshot of a web page programmatically. UXCanvas needed component previews, ShadcnThemer needed theme snapshots, and a design references database I was building needed to capture sites on the fly. Every time, I'd write the same Puppeteer boilerplate from scratch. Eventually I pulled it into its own package.
@miketromba/screenshot-service is a Puppeteer-based screenshot API distributed as an npm module. Pass it a URL, get back an image — PNG, JPEG, or WebP, full-page or viewport, with options for waiting on specific selectors or network idle before capturing. It handles the unglamorous stuff that actually matters in production: font rendering consistency across environments, concurrent browser instance management, and authentication forwarding for protected pages.
The interesting technical detail is that it runs on Vercel. You wouldn't assume a serverless platform could handle headless Chromium, but @sparticuz/chromium provides a stripped-down binary optimized for serverless constraints. The package uses that with puppeteer-core for Vercel deployments, and full Puppeteer with puppeteer-cluster for local development — both sharing the same core capture logic so behavior stays consistent regardless of environment.