Blog

Web extraction, LLMs, and building in public.

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.

66 postsPage 6 / 8
JavaScript Rendering API: When You Actually Need a Browser
May 21, 2026Massi

JavaScript Rendering API: When You Actually Need a Browser

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.

Anti-Bot Scraping API 2026: signals that force browser fallback
May 19, 2026Massi

Anti-Bot Scraping API 2026: signals that force browser fallback

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.

Anti-Bot Scraping API in 2026: Skip Browser-First, Stay Fast
May 14, 2026Massi

Anti-Bot Scraping API in 2026: Skip Browser-First, Stay Fast

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.

How to evaluate web scraping APIs for AI agents
May 12, 2026Massi

How to evaluate web scraping APIs for AI agents

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

Migrating from Firecrawl: compatible API for AI agents
May 8, 2026Massi

Migrating from Firecrawl: compatible API for AI agents

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.

Cloudflare Scraping Checklist: Diagnose the Block in 2026
May 5, 2026Massi

Cloudflare Scraping Checklist: Diagnose the Block in 2026

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 JA4 / JA3 Fingerprinting Explained (Why curl Gets 403)
Apr 30, 2026Massi

Cloudflare JA4 / JA3 Fingerprinting Explained (Why curl Gets 403)

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: What Each Block Means
Apr 28, 2026Massi

Cloudflare 403, 503, 1020, 1015: What Each Block Means

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.

Why Puppeteer Stealth Still Fails on Cloudflare (2026)
Apr 24, 2026Massi

Why Puppeteer Stealth Still Fails on Cloudflare (2026)

puppeteer-extra-plugin-stealth still gets caught by Cloudflare in 2026. The network, request, and session signals that give it away, and what to run instead.

Stop reading. Start scraping.

Cancel anytime. Turn any page into clean, structured content your agent can actually use.

Read the docs