Vai al contenuto principale

[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

Indice: meno 2. pensaci

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».

Prompt one-shot EN
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é

Sei d’accordo?

La bilancia dei voti

Ancora nessun voto: il tuo è il primo.

Nessun voto ancora — il primo pesa.

App correlate

Distribuzione dei verdetti n = 996

SÌ 153 QUASI 451 — il verdetto di questa app NON PROPRIO 392

Da brief confuso a UX/UI completa Un brief vago diventa un’app navigabile. Spot prodotto da una foto Una foto diventa uno spot animato, senza codice. Far guardare i video a Claude Claude guarda i tuoi video e li trasforma in testo. Higgsfield in Claude Code Genera immagini e video mentre programmi in Claude Code. Da un Loom a una pagina web Un video schermo diventa una pagina web, senza codice. Video Shorts con NotebookLM Le tue fonti diventano uno short verticale. Landing luxury su Lovable Landing page di lusso con un solo prompt. Excalidraw in locale Excalidraw gratis sul tuo computer, senza codice. Mistral OCR nel flow Estrai testo dai documenti con Mistral OCR. Claude SEO nel terminale 25 skill SEO gratis dentro Claude Code. Google Search Console dentro Claude Code I dati di Search Console dentro il terminale. Routine di Claude Code Claude che lavora da solo, a computer spento. Clonare una landing in React con v0 Clona una landing reale in codice React. Context economy con Claude Lavora leggero e non bruciare i limiti di Claude. Dal prompt alla skill auto-evolutiva Skill Claude che imparano dai tuoi errori. Da NotebookLM a Canva: presentazioni Slide da NotebookLM, finalmente editabili in Canva. La mappa per capire ogni tool AI 12 categorie per incasellare qualsiasi tool AI. PNG trasparenti con ChatGPT PNG con trasparenza reale, non la scacchiera finta. Infografiche animate con Gemini Infografiche che si animano in loop con Gemini. Ricerca di mercato con Deep Research Deep Research come tuo analista di mercato. Farti citare dai motori AI (AEO) Diventa una fonte che ChatGPT e Perplexity citano.