Custom Chromium automation for sites that challenge stock browsers.

Some targets require more than a stealth plugin or another automation wrapper. Nina modifies Chromium at the source level, tests the result against real devices, and packages it for Playwright, Puppeteer, and production browser workers.

Why stock Chromium falls short

Automation frameworks leave traces in browser behavior, JavaScript execution, and network traffic. A target can compare those signals with the hardware and browser identity it expects. Masking one value rarely fixes an inconsistent browser.

Difficult workflows can also involve VM-based JavaScript challenges, request signing, encrypted payloads, and server-side scoring. The browser has to behave correctly as a system, not only present the right user agent.

What we change

Browser and JavaScript components

Source-level changes for automation traces, browser behavior, JavaScript engine behavior, and human-like input. We also analyze obfuscated JavaScript and VM-based challenges when the target requires it.

Network and identity components

Changes and testing for TLS, HTTP/2, browser fingerprints, request signing, and session behavior. Real-device personas combine hardware, browser, and network attributes instead of isolated spoofed values.

How we test a custom build

  1. Capture a reference.We collect browser and network behavior from appropriate real devices and record the attributes that matter for the target.
  2. Compare against the build.We run fingerprint capture and real-device comparisons, then investigate mismatches in browser, JavaScript, and network behavior.
  3. Exercise the real workflow.We test sign-ins, sessions, challenge flows, and the complete task rather than stopping at a successful page load.
  4. Run regression tests.Seeded identities and repeatable checks help us detect changes in the browser, target, or protection system before they become production failures.

Browser, HTTP, or hybrid

A custom browser is not always the right answer. We choose the approach that meets the target with the least operational complexity.

  • HTTP-only. Useful when the required requests can be reconstructed and the target accepts browser-compatible network behavior without a full page runtime.
  • Real browser. Useful when JavaScript execution, rendering, interactive challenges, or complex browser state are required.
  • Hybrid. Uses a browser to establish identity and session state, then moves suitable work to faster browser-compatible HTTP clients.

Built to run in production

We produce macOS and Linux builds with Playwright and Puppeteer support. For production engagements, the browser can run inside managed worker pools with proxies, sticky sessions, queues, caching, monitoring, retries, and automated recovery on AWS.

The result is not only a browser binary. It is a tested access system with a way for your agent to use it and a way for your team to operate it.

Common questions

Does every difficult target need a custom Chromium build?

No. We first check whether an HTTP client, stock browser, or hybrid workflow can meet the requirement reliably. Source-level work is reserved for targets that need it.

Can our existing Playwright or Puppeteer code use the build?

Yes. The builds are made with Playwright and Puppeteer support, so existing workflows can usually connect without changing their framework.

How do you handle target and browser updates?

Seeded identities, real-device comparisons, and regression tests make changes visible. Production engagements also include monitoring and maintenance for target-side changes.

Can the workflow avoid a browser for some steps?

Yes. A hybrid design can use the browser only where it is needed, then use browser-compatible HTTP clients for suitable requests and data processing.

Related engineering

Need more than a stock browser can provide?

Share the target and the point where your current browser workflow fails. We will determine whether the right answer is HTTP, a custom browser, or a hybrid system.

Start a project