Technical deep dives on web extraction, content parsing for LLMs, anti-bot bypass, and building open-source infrastructure in Rust. Written by the team behind webclaw.
webclaw turns any website into clean, structured content for AI applications. These posts cover the engineering decisions, trade-offs, and lessons learned building a web extraction toolkit from scratch.
Crawl4AI vs Playwright for web scraping: which one to pick, where each breaks, and when you need neither. Markdown output, browser control, RAG input.
Most pages do not need a headless browser. How to detect an empty React shell, when a JavaScript rendering API is worth it, and how to skip the slow path.
The exact block markers, JA4 fingerprints, empty shells, anti-bot cookies, JavaScript heuristics, and content-quality signals that decide when a scraping API should escalate to a browser.

An anti-bot scraping API that detects the block first, then escalates to a browser only when needed. Faster and cheaper, with clean markdown or JSON out.

A practical checklist for testing web scraping APIs on real agent and RAG workflows, not toy URLs like example.com.

Already using Firecrawl? Learn how Firecrawl-compatible endpoints work, what to test before switching, and how to evaluate webclaw with your existing scrape and crawl calls.

A checklist for Cloudflare scraping failures. What to log, what each signal means, and when to change fingerprint, session, rate limit, or render in a browser.

Cloudflare fingerprints your TLS and HTTP/2 handshake with JA3 and JA4 — that is why curl gets 403 and Chrome gets 200 on the same request. How browser-grade clients flip the result.

Cloudflare 403, 503, 1020, 1015 each mean a different block. A decision tree to read the code, find the failing layer, and fix it. Includes error 1020.
Cancel anytime. Turn any page into clean, structured content your agent can actually use.