A high-level view of performance reporting In the performance community, we spend a lot of time talking about tools, metrics, budgets, thresholds, regressions, and dashboards. But at the end of the day, the real challenge is not collecting data, it is making sense of it. A great report does not overwhelm. A great report tells […]
To build instantly loading websites was always my goal. For years, however, this remained an aspirational target rather than a technical reality for the open web. We spent a decade optimizing critical rendering paths and shaving milliseconds off Time to First Byte, but the physical limits of the network always kept “true instant” just out […]
With web performance, less is typically more: When possible, send less data, make the browser do less. Here are several examples where you can replace common JS patterns with HTML and CSS.
Canvas-based rendering has become a prominent tool for building complex web UI interfaces. When working with large images on canvas, one critical challenge stands out: keeping the main thread responsive during image decoding. Unfortunately there’s no universal way to decode an image for canvas’ drawImage() without blocking the main thread across all browsers. An approach […]
After 25 years building sites for global brands, I kept seeing the same pattern appear. A team ships new features, users quietly begin to struggle, and only later do the bug reports start trickling in. Someone finally checks the metrics, panic spreads, and feature development is put on hold so the team can patch problems […]
When I explain the difference between lab (aka synthetic) and field data to people, one of the things I mention is that the lab allows for testing under repeatable, controlled conditions. Each test run offers an apples-to-apples comparison with previous tests, and results are available almost immediately. On the other hand, field data measures actual […]
Most HTML documents are relatively small, providing a starting point for other resources on the page to load. But why do some websites load several megabytes of HTML code? Usually it’s not that there’s a lot of content on the page, but rather that other types of resources are embedded within the document. In this […]
If you have a statically generated website hosted on a CDN, it’s probably very fast (unless you add too much client-side JavaScript). However, for dynamically generated pages that load content from a database, one of the most overlooked ways to speed up the perceived page load speed is HTTP streaming. Unless you do streaming on […]