Can I vibecode ScreenshotOne?
price $17/moyou'd save $204/yrbuild time weekendcategory dev-toolsreplaced by 0 people
KINDA
MOATscale infraproprietary dataexecution polish
Managed API for rendering websites, HTML, and Markdown as images or PDFs
The Build Prompt
copy it and go buildready to paste · 1,497 chars
Build me a self-hosted website screenshot API to replace ScreenshotOne for personal use. Requirements: - Node 22 + Fastify + Playwright (Chromium) + better-sqlite3, one process, no queue system. - GET /take?url=&format=png|jpeg|webp|pdf&width=&height=&full_page=&delay_ms= renders the page in a pooled Chromium context and returns the image bytes directly. - POST /take accepts raw HTML or Markdown in the body and renders that instead (Markdown through marked into a plain template). - Auth is one API key from .env, checked on every request; 401 without it. - Cache by hash of the normalized options: metadata in SQLite, files under data/cache/, with a cache_ttl option and a fresh=true bypass. - Block ads and cookie banners the honest way: load EasyList and the "I don't care about cookies" filter list at startup, apply them via request interception, plus a small CSS hide-list for common consent overlays. Do not promise it catches everything. - Hard 15-second navigation timeout, one retry, then a JSON error with the reason; never a hanging request. - Concurrency capped at a small context pool (default 2) with an in-memory queue, so the box does not fall over. - Out of scope: proxies and IP locations, stealth evasion, scrolling video capture, GPU rendering, dashboards, usage billing. That fleet is the paid product. - README: npx playwright install chromium, .env keys, Chromium memory expectations, and a one-line warning that hostile sites will beat this build.
What you lose
- ✕managed browser capacity, rate limiting, and high availability
- ✕maintained ad, cookie banner, chat widget, and popup blocking rules
- ✕residential proxies, selectable IP locations, and stealth tuning
- ✕scrolling screenshots, video generation, and GPU rendering
- ✕production support for difficult sites and browser edge cases
Why it still works
browser fleet, blocking-rule corpus, proxies, and rendering reliability