Blog

Notes from the arms race.

What actually gets a profile flagged, how agents drive a real browser, and the detector runs behind our claims.

4 min

What is actually in a browser profile, and how to back it up properly

A profile directory holds cookies, storage and increasingly passkeys that cannot be re-issued if the directory is lost. Copying a raw Chromium user-data folder between machines usually fails quietly.

4 min

Scraping and account automation are different problems sold as one tool

Public data collection and logged-in account work want opposite things from a proxy, a browser and a budget. Buying one tool for both usually means overpaying for one job and underserving the other.

4 min

What a page can actually detect about headless Chrome

Old headless Chrome gave itself away through a UA token, empty plugin arrays and zeroed window dimensions, and new headless mode closed most of that. What is left to detect is almost always the absence of a real GPU, not a flag.

6 min

Why I Stopped Letting Websites Download Gemini Nano Into Every Browser Profile

Any page can make Chrome download gigabytes of on-device AI models, once per profile, through that profile's proxy. The two obvious switches either change what the page sees or keep the download and stop security updates, so the fix went into the engine.

4 min

How Cloudflare bot management decides to block you

Cloudflare scores IP reputation and TLS behaviour before your browser fingerprint is ever read, then layers a managed challenge and a behavioural score on top. Most blocks people blame on fingerprinting are actually decided one layer earlier.

4 min

Running client accounts you are authorised to manage without linking them

Twenty client accounts opened from one browser share more than you think, and most of what links them is not the browser at all. A practical setup for agencies with legitimate access, plus the offboarding step everyone forgets.

4 min

Puppeteer stealth plugin, what it patches and what it never tried to fix

puppeteer-extra-plugin-stealth rewrites the JS properties a stock Chromium exposes, one evasion module per property. It has nothing to say about identity across runs, proxy-bound timezone, or passkeys. Here is where that boundary actually sits.

5 min

Why a correctly configured proxy still leaks your real IP over WebRTC

WebRTC gathers ICE candidates over UDP, outside the HTTP or SOCKS proxy path, so a site can read your real public IP with two lines of JavaScript regardless of what the address bar shows. Disabling WebRTC outright trades one tell for another.

5 min

How JA3 and JA4 catch a scraper before the page even loads

The TLS handshake and HTTP/2 frame order reveal what software made a request, regardless of the User-Agent header. JA3 and JA4 hash that order, which is why a copied Chrome header over a Python handshake fails before content loads.

5 min

Canvas fingerprinting explained, mechanically

A page draws text to a hidden canvas, reads the pixels back and hashes them. The result is stable on one machine and different across machines, which is exactly what makes it useful for tracking and hard to fake convincingly.

4 min

Handing a Browser Profile to Someone Who Has Never Paid

Selling a warmed-up browser environment used to mean exporting a file and hoping the buyer paid afterwards. Ownership transfer makes it one atomic handover instead - and the buyer no longer needs a subscription first. Here is what the one-time 30-day handover window carries, what it deliberately withholds, and what happens on day 31.

6 min

Sharing a Browser Profile: File, Link, or Transfer?

Handing a browser environment to someone else comes down to three choices - export a file, share a link, or transfer ownership - and each one trades a different amount of control for convenience. Here's exactly what you keep, what you give up, and what revoking can and can't undo.