{"id":"self-host-browser","slug":"self-host-browser","name":"Self-host browser automation","shortName":"Self-host browser automation","problemStatement":"Run Chromium fleets in your infra.","whenNotTopPick":"No ops — Browserbase.","categoryIds":["cat-sandboxes-browsers","cat-search-scrape"],"depotPickProviderId":"steel-dev","depotPickRationale":"lockInRisk low + capability.","runnersUpIds":["browserless","playwright","puppeteer"],"weights":{"capabilityFit":0.25,"pricePerformance":0.18,"latencyReliability":0.15,"developerDx":0.15,"privacyPosture":0.1,"lockInRisk":0.07,"maturity":0.1},"methodologyNotes":"lockInRisk low + capability.","tags":["self"],"depth":{"whenNotToUse":{"text":"No ops — Browserbase.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"browserless","name":"Browserless","overallForJob":8.25,"pickOverallForJob":8.27,"beatsPickOn":["capabilityFit","latencyReliability","maturity"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":2.5,"runnerUpLockInRisk":3.5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":["open source (provider tag `oss`)","self-hostable (provider tag `self-host`)"],"runnerUpExitSignals":[],"pickNotes":[{"text":"Self-hostable browser infra","field":"strengths"},{"text":"You own ops if self-hosting","field":"weaknesses"},{"text":"Pick Steel when you need to self-host browsers or hate SaaS lock-in.","field":"scores.notes"},{"text":"Strengths: Self-hostable browser infra;","field":"description"}],"selfHostFallback":[{"id":"playwright","name":"Playwright","license":"Apache-2.0","sourceUrl":"https://github.com/microsoft/playwright/blob/main/LICENSE"},{"id":"browsergym","name":"BrowserGym","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/ServiceNow/BrowserGym/main/LICENSE"},{"id":"crawl4ai","name":"Crawl4AI","license":"Apache-2.0 plus attribution requirement","sourceUrl":"https://raw.githubusercontent.com/unclecode/crawl4ai/main/LICENSE"}],"migration":"The pick has lower stored lock-in risk than runner-up Browserless (2.5 vs 3.5). Pick exit signals: open source (provider tag `oss`); self-hostable (provider tag `self-host`). Self-host fallback listed for this job: Playwright, BrowserGym, Crawl4AI.","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":4,"sourcesReachable":4,"pricingRows":9,"pricingRowsReconfirmed":2,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}},"depotPick":{"id":"steel-dev","slug":"steel-dev","name":"Steel.dev","tagline":"Pick Steel when you need to self-host browsers or hate SaaS lock-in. Browserbase wins on polish.","overall":8.27},"runnersUp":[{"id":"browserless","slug":"browserless","name":"Browserless","tagline":"Veteran choice for headless fleets. Great if you already speak Playwright fleets, not just agents.","overall":8.25},{"id":"playwright","slug":"playwright","name":"Playwright (library)","tagline":"The API you probably already use — under Browserbase/Steel/Browserless. Listed so agents don't confuse…","overall":9.05},{"id":"puppeteer","slug":"puppeteer","name":"Puppeteer (library)","tagline":"Still fine for Chrome-only scripts. New agent projects should prefer Playwright unless stuck on Puppeteer.","overall":8.79}]}