Back to projects

Spectator

A toolkit for distributed browser automation and realistic playback simulation.

Spectator

Overview

Spectator is a toolkit I've been working on for distributed browser automation with realistic playback behavior. Most browser automation systems either go fast and look like bots, or go slow and become unreliable. Spectator is the attempt to find a middle path - automation that looks human while still being usable as a research and validation tool.

What it does

The toolkit coordinates multiple browser sessions across machines, with each session simulating realistic interaction patterns - cursor movement, scroll cadence, dwell times, click variance. The goal is not to evade detection for its own sake, but to produce traffic patterns that mirror how humans actually interact with the page, so the data you collect or the workflows you exercise reflect real-world conditions.

Technical decisions

I chose Playwright for the underlying browser layer because of its strong API surface and reliable cross-browser support. The orchestration layer manages session pools, distributes work across machines, and handles the timing variance that makes playback feel natural. State synchronization between distributed sessions was the hardest problem - getting consistency right while still allowing each session to feel independent took several iterations.

What I learned

Working on this taught me that "realistic" is harder to design than "fast" or "thorough." Speed is a single metric. Realism is a balance of dozens of small choices, and you only know you've got it right when the data you collect downstream matches what you'd see from a manual user. That feedback loop is slow but worth respecting.