Skip to main content

[verdict][curated prompt][source: screenshotone.com]

Can I vibecode ScreenshotOne?

// buildable in a weekend, but real gaps stay open

A competent coding agent can build a useful self-hosted screenshot endpoint around Playwright in a weekend. Matching ScreenshotOne's reliable browser fleet, proxy locations, stealth behavior, maintained blocking rules, videos, and production edge-case handling is a much larger infrastructure product.

confidence: high

what it is: Managed API for rendering websites, HTML, and Markdown as images or PDFs

Buildability index · an editorial game

  • Price from 17 $ · usage-based weight: plus 2
  • Time weekend weight: plus 2
  • Category developer tools no weight
  • Moat infrastructure scale · proprietary data · execution quality weight: minus 5
  • Confidence high weight: plus 1
  • What you lose 5 items weight: minus 2
  • Site screenshotone.com (si apre in una nuova scheda) no weight
Indice: minus 2. think twice

The moat outweighs the price: rebuilding this is a project, not an evening.

Gioco editoriale: il verdetto dice se un agente può, l’indice se conviene.

What you build

Send a URL or HTML to an authenticated HTTP endpoint and receive a cached PNG, JPEG, WebP, or PDF rendered by a local Chrome/Chromium worker.

what you need

  • Docker
  • a machine with enough memory to run Chrome/Chromium

The basic API is buildable; dependable rendering at scale and the maintained cleanup data are the paid product.

The prompt

A weekend with a coding agent. The gaps that stay are right below, under “what you lose”.

One-shot prompt 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.

Curated prompt: written and reviewed by hand for this app. In English on purpose — it is the language coding agents work best in.

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 people still pay

They want a screenshot API that stays reliable across hostile, slow, dynamic, and consent-heavy sites without operating Chrome/Chromium workers, updating blocking rules, managing proxies, or debugging browser failures.

moat: Infrastructure scale Proprietary data Execution quality what a moat is

browser fleet, blocking-rule corpus, proxies, and rendering reliability

Free alternatives

Not in the mood to build it? These already exist, they are free or open source, and we checked them one by one.

Rejected (1) — and why

Do you agree?

The vote balance

Ancora nessun voto: il tuo è il primo.

Nessun voto ancora — il primo pesa.

Related apps

Distribuzione dei verdetti n = 996

YES 153 KIND OF 451 — il verdetto di questa app NOT REALLY 392

From a Confusing Brief to a Complete UX/UI A vague brief becomes a navigable app. Product Ad From a Single Photo A photo becomes an animated ad, no code required. Get Claude to Watch Your Videos Claude watches your videos and turns them into text. Higgsfield Inside Claude Code Generate images and video while you code in Claude Code. Turn a Loom Recording Into a Web Page A screen recording becomes a web page, no code. Vertical Shorts With NotebookLM Your sources become a vertical short. Luxury Landing Pages on Lovable A luxury landing page from a single prompt. Excalidraw Running Locally Excalidraw free on your computer, no code. Mistral OCR in Your Workflow Extract text from documents with Mistral OCR. Claude SEO in the Terminal 25 free SEO skills inside Claude Code. Google Search Console inside Claude Code Search Console data inside your terminal. Claude Code Routines Claude working on its own, computer off. Clone a Landing Page in React With v0 Clone a real landing page into React code. Context Economy With Claude Work light and don't burn through Claude's limits. From Prompt to Self-Improving Skill Claude skills that learn from your mistakes. From NotebookLM to Canva: Presentations NotebookLM slides, finally editable in Canva. The Map for Understanding Every AI Tool 12 categories for placing any AI tool. Transparent PNGs With ChatGPT Real transparency, not a fake checkerboard. Animated Infographics With Gemini Infographics that loop, animated with Gemini. Market Research With Deep Research Deep Research as your market analyst. Get Cited by AI Search Engines (AEO) Become a source that ChatGPT and Perplexity cite.