📸 Snapfleet
Self-hosted screenshot API. Unlimited renders. Pay once.
Urlbox charges $19/month for 2,000 renders. ScreenshotOne is $17/mo, ApiFlash $7/mo. But rendering a screenshot is just running headless Chromium — something your $5 VPS can do all day for free. Snapfleet is a self-hosted screenshot API with the same clean ergonomics as the paid ones: one endpoint, API keys, rate limits, caching. $39, once, unlimited renders.
Snapfleet, as it actually looks — a real screenshot, not a mockup.
Features
One endpoint, every option
GET /api/v1/screenshot?url=... returns PNG, JPG or PDF — viewport, full-page, delay, wait conditions, dark-mode emulation, JPEG quality and retina scale.
Element clipping
Pass a CSS selector and get just that element — perfect for og-images and social cards.
API keys built in
Named keys with per-key token-bucket rate limits and daily quotas, usage counters, revoke/regenerate.
Smart cache
Identical requests hit a SHA-256-keyed disk cache with HIT/MISS headers, default 24h TTL and per-request bypass.
Browser pool
One shared Chromium with configurable concurrency, request queue, 30s job timeouts and automatic relaunch if the browser crashes.
Playground UI
A dark admin panel with live preview of every parameter — copy the exact request URL or curl one-liner.
Internal targets
Screenshot localhost and internal dashboards — something no cloud API can reach (flip ALLOW_PRIVATE off for multi-tenant SSRF hygiene).
100% local
Your URLs and screenshots never leave your machine. Gallery, stats dashboard, no telemetry.
Snapfleet vs Urlbox
Urlbox at $19/mo runs roughly $228/year — $456 over two years. Snapfleet is $39, once.
| Snapfleet | Urlbox | |
|---|---|---|
| Price | $39 once | $19/mo ($228/yr, forever) |
| Renders | Unlimited — it's your CPU | 2,000/month |
| Your data | Stays on your server | Their cloud |
| PNG / JPG / PDF | Yes | Yes |
| Element clipping + dark mode | Yes | Yes |
| Internal / localhost targets | Yes | No |
| API keys + rate limits | Yes | Yes |
| Source code | MIT, on GitHub | Closed |
Just over 2 months of Urlbox pays for Snapfleet outright — $228/yr saved, unlimited renders forever.
Three steps, no subscription
Buy once on Whop
One-time $39 for the packaged 1-click Windows installer with auto-updates — no terminal, no Docker knowledge needed.
Run it anywhere
Desktop app, npm start on a VPS, or docker compose up (the image ships Chromium preinstalled). Create an API key in the UI.
Curl your first screenshot
One GET request returns the PNG. Use the playground to dial in parameters and copy the exact curl command.
Honest answers
Is it really free on GitHub?
Yes — MIT source at github.com/bensblueprints/snapfleet, always. $39 buys the 1-click installer and updates. From source it's npm i && npm start (heads-up: Puppeteer downloads ~170MB of Chromium on first install).
Is it as reliable as Urlbox?
Urlbox runs a global render fleet with retries and edge caching — for millions of renders a month at five nines, they earn their fee. Snapfleet is one pooled Chromium on your box with queueing, timeouts and crash recovery — for og-images, link previews, PDFs and internal tooling, that's honestly all you need.
What do people use it for?
Open-graph image generation, link previews, PDF invoices and receipts of web pages, visual monitoring, archiving, and thumbnails for directories — anywhere you'd otherwise pay per render.
Can it screenshot pages behind my firewall?
Yes — that's a headline feature. Because it runs on your infrastructure it can reach localhost and RFC1918 addresses (ALLOW_PRIVATE defaults to on). No cloud screenshot API can do that.
How does the cache work?
Requests are normalized (defaults applied first), hashed with SHA-256, and stored on disk with a TTL — identical requests return instantly with an X-Snapfleet-Cache: HIT header. Pass fresh=true or a per-request ttl to bypass it.
Deep-dive comparisons:
Own Snapfleet forever
$39 once. Deploy on your own server — your data never leaves it. No renewal, no account with us, no meter. Or build it yourself from the MIT source — it's the same app.