[verdetto][prompt curato][fonte: screenshotone.com]
Posso vibecodare ScreenshotOne?
// si costruisce in un weekend, ma restano buchi veri
Un endpoint di screenshot self-hosted e utile, costruito attorno a Playwright, è una build da weekend. Eguagliare la flotta di browser affidabile, le location proxy, le regole di blocco tenute aggiornate e i casi limite in produzione è un prodotto infrastrutturale molto più grande.
confidenza: alta
cos’è: API gestita per trasformare siti, HTML e Markdown in immagini o PDF
Indice di costruibilità · gioco editoriale
- Prezzo da 17 $ · a consumo peso: più 2
- Tempo un weekend peso: più 2
- Categoria strumenti per sviluppatori non pesa
- Moat scala dell'infrastruttura · dati proprietari · qualità di esecuzione peso: meno 5
- Confidenza alta peso: più 1
- Cosa perdi 5 voci peso: meno 2
- Sito screenshotone.com (si apre in una nuova scheda) non pesa
Il moat pesa più del prezzo: rifarlo è un progetto, non una sera.
Gioco editoriale: il verdetto dice se un agente può, l’indice se conviene.
Cosa costruisci
Mandare un URL o dell'HTML a un endpoint HTTP autenticato e ricevere un PNG, JPEG, WebP o PDF in cache, renderizzato da un worker Chrome/Chromium locale.
cosa ti serve
- Docker
- una macchina con memoria a sufficienza per far girare Chrome/Chromium
La API di base si costruisce; il prodotto a pagamento è un rendering affidabile su scala e i dati di pulizia tenuti aggiornati.
Il prompt
Un weekend con un agente di coding. I buchi che restano sono qui sotto, in «cosa perdi».
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. Prompt curato: scritto e rivisto a mano per questa app. In inglese di proposito — è la lingua in cui gli agenti di coding rendono meglio.
Cosa perdi
- la capacità dei browser gestita, il rate limiting e l'alta disponibilità
- le regole di blocco tenute aggiornate per pubblicità, banner dei cookie, widget di chat e popup
- i proxy residenziali, le location IP selezionabili e la taratura stealth
- gli screenshot a scorrimento, la generazione di video e il rendering su GPU
- il supporto di produzione per i siti difficili e i casi limite dei browser
Perché pagano ancora
Si vuole una API di screenshot che resti affidabile su siti ostili, lenti, dinamici e pieni di richieste di consenso, senza dover far girare worker Chrome/Chromium, aggiornare le regole di blocco, gestire i proxy o fare debug dei fallimenti del browser.
moat: Scala dell'infrastruttura Dati proprietari Qualità di esecuzione cos’è un moat
flotta di browser, corpus di regole di blocco, proxy e affidabilità del rendering
Alternative gratuite
Non hai voglia di costruirtelo? Queste esistono già, sono gratis o open source, e le abbiamo controllate una per una.
Scartate (1) — e perché
- Browserless (si apre in una nuova scheda) — Gratis solo per uso non commerciale; il lavoro proprietario in produzione richiede una licenza a pagamento.
Sei d’accordo?
La bilancia dei voti
Ancora nessun voto: il tuo è il primo.
Nessun voto ancora — il primo pesa.