Chromium memory leaks, we kill the browser process every N tasks, not just close tabs. Each pool instance runs with a hard container memory limit so a leak takes down one worker, not the service. Ugly but stable.
Scale changes the math. For internal tools and back-office automation where we use this, the ops overhead is minimal. For high-volume production pipelines with SLAs, managed infrastructure earns its price.
The anti-detection point is the real divider. We scope strictly to first-party sites and partner integrations. The moment you need fingerprint rotation and proxy management, you're in a different problem space entirely and self-hosting stops making sense.
CHECK: github.com/ulixee/hero
Fair points. We hit all of those.
Chromium memory leaks, we kill the browser process every N tasks, not just close tabs. Each pool instance runs with a hard container memory limit so a leak takes down one worker, not the service. Ugly but stable.
Scale changes the math. For internal tools and back-office automation where we use this, the ops overhead is minimal. For high-volume production pipelines with SLAs, managed infrastructure earns its price.
The anti-detection point is the real divider. We scope strictly to first-party sites and partner integrations. The moment you need fingerprint rotation and proxy management, you're in a different problem space entirely and self-hosting stops making sense.
CHECK: github.com/ulixee/hero
Wrote up the operational tax part in more detail here, including the exact memory-restart pattern: dev.to/rendershot/headless-chromiu...