Happo News

Get an email when we publish a new article or ship something noteworthy. Prefer to read in your own feed reader? Subscribe via RSS.

Subscribe

We’ll send you a confirmation link before adding you to the list. Unsubscribe any time.

Recent articles

Block HTTP requests to cut flake and lock down Happo workers

Joe Lencioni •

A new option in the happo npm package lets you allow-list the hostnames your snapshots may talk to. Requests to anything else never leave the worker, which means faster runs, a tighter security boundary, and a lot less flake. One customer went from about 2,000 flaky examples to about 20.

All the logs for a Happo report, in one searchable page

Henric Persson •

Every Happo report now has a logs page that merges the logs from all of its snap-requests into a single timeline. Search for a component name, see each match with surrounding context, and expand any snap-request's full log with one click.

Happo now supports GitLab

Joe Lencioni •

Happo now integrates with GitLab: status checks on merge requests, baseline lookups that walk back through your commit history, and cancellation of superseded jobs. The integration is labeled experimental while it picks up real-world mileage, and self-managed GitLab instances are supported too.

One-click reviews and smarter filtering for visual diffs

Joe Lencioni •

Accept and Reject are now one-click toggles reviewing Happo diffs takes less effort. The multi-project job page also groups projects by status, hides unchanged projects, and surfaces how many projects have diffs.

How we cut Happo queue times from 138 seconds to under 20

Joe Lencioni •

For years we absorbed traffic spikes in our screenshot workers by over-provisioning Kubernetes nodes and paying for capacity that mostly sat idle. Switching to KEDA autoscaling on queue depth, pre-warming capacity from an anticipated-work signal, and dampening that signal so estimates could not blow up the fleet cut average queue wait during bursts from 138 seconds to under 20. Here is the pattern, which is reusable for any bursty workload.

Need help?