We have been debugging browser automation workflows long enough to see the same pattern repeat: the first instinct is to scale the scraper before fixing the browser layer.
More workers. More proxies. More retry loops. More fallback selectors.
Then the same failures come back, just across more machines:
navigator.webdriver needed patchingThat is a lot of machinery before the scraper even gets to the business logic.
I think a lot of us over-scale too early. We add more nodes, more proxies, more retries, more modal hacks. Then the real issue is still sitting underneath: the browser layer is leaking automation signals and the interaction layer is brittle.
This is the exact reason we built browser-act.
The CLI gives an agent or scraper a persistent browser profile, stealth browser mode, real Chrome control when you need aged cookies, built-in captcha solving, and an indexed state command so the script clicks element numbers instead of trying to invent CSS selectors.
The workflow becomes closer to:
browser-act --session jobs browser open <browser_id> https://example.com
browser-act --session jobs wait stable
browser-act --session jobs state
browser-act --session jobs click 5
browser-act --session jobs get markdown
That does not remove every hard problem. If a site is doing serious A/B testing, you still need detection around page variants. If the target is rate-limiting account behavior, IP and timing still matter.
But it moves the first layer of pain out of every scraper project.
Instead of each project maintaining its own Puppeteer/Selenium + stealth plugin + captcha API + cookie jar + selector fallback stack, the browser behavior becomes a reusable CLI boundary. That is especially useful for AI agents, because the agent can inspect a page through state and get markdown instead of burning tokens on raw HTML or hallucinating selectors.
One concrete number from our own runs: Product Hunt's AI page was 680,193 chars as raw HTML and 49,272 chars as markdown through browser-act get markdown - about a 93% reduction before the model sees it.
If I were rebuilding a Selenium-heavy scraping stack today, I would not start by buying better proxies or adding more boxes.
I would first ask:
Scale still matters. But scaling a fragile browser layer just gives you 50 fragile browsers.
Install command if you want to test it:
npx skills add browser-act/skills --skill browser-act
Curious how people here split the stack now: do you still keep Selenium/Playwright as the main runtime, or do you try to reverse-engineer requests first and only use a browser for the protected steps?
The "scale the scraper before fixing the browser layer" pattern shows up just as hard in Chrome extension scraping work, even though the constraints look different on the surface. The MV3 sandbox forces you to think about session reuse and fingerprint stability earlier than a Node-side Selenium stack does, but most teams still default to "more workers" when the real problem is that the underlying browser context is leaking signals.
The 93% char reduction from raw HTML to markdown is the number I'd push hardest in the post — that's not a marginal optimization, that's the difference between an agent that costs $0.40/run and one that costs $6. Worth pulling that to the top.
One question I'd be curious about: how do you handle the cases where the page renders state into shadow DOM or canvas (modern Stripe, some Notion embeds, Cloudflare Turnstile UIs)? Markdown extraction usually collapses cleanly on static-ish sites, but the brittle middle ground is sites that look textual but are actually rendering through web components. Curious if browser-act treats those as a separate code path.
This is a strong technical wedge because you’re not arguing “Selenium is bad.” You’re naming the layer most teams ignore: the browser behavior layer before scaling even matters.
The best part is the reusable CLI boundary idea. Scraping stacks usually become a messy bundle of Playwright/Selenium, stealth patches, captcha APIs, proxy logic, cookies, selector fallbacks, and one-off hacks. Pulling that into a stable browser layer is a much clearer category than “browser automation tool.”
I’d probably position BrowserAct around reliable browser infrastructure for agents and scrapers, not just automation. The 93% raw HTML to markdown reduction is especially strong because it connects browser automation directly to AI agent cost and reliability.
One thing I’d watch is the name. BrowserAct is clear, but it feels very literal and tool-like. If this becomes serious browser infrastructure for AI agents, scraping, and protected web workflows, Davoq.com would give it a harder infrastructure-grade brand.