
The best problem-solving writing in software engineering — databases, performance, security, frontend and distributed systems, in one feed.


Read about the latest developments in speed tooling including new performance metrics, updates to PageSpeed Insights and Chrome User Experience Report (CrUX), and insights from Web Almanac analysis of the web ecosystem.

How To Think About Speed Tools





stale-while-revalidate helps developers balance between immediacy—loading cached content right away—and freshness—ensuring updates to the cached content are used in the future.

Compositing is where the painted parts of the page are put together for displaying on screen.

There are many different options for storing data in the browser. Which one is best for your needs?


The Streams API allows JavaScript to programmatically access streams of data received over the network and process them as desired.

Learn how to deploy a CSP based on script nonces or hashes as a defense-in-depth against cross-site scripting.

For the longest time, you had to resort to workarounds and libraries to create a deep copy of a JavaScript value. The Platform now ships with `structuredClone()`, a built-in function for deep-copying.

The focus indicator identifies the focused element. For users who can't or don't use a mouse, this indicator is extremely important, as it acts as a stand-in for their mouse-pointer.


Make sure your service worker knows what to do when a partial response is requested.


Learn what code coverage is and discover four common ways to measure it.

Discover how to combine different testing types into a reasonable strategy that matches your project.

Determine what to test, define your test cases, and prioritize.

Let's start with the basics! Exploring the two general testing modes and three common types of test automation.

Determine what you need to test and what you can rule out.

Optimize tags and tag managers for Core Web Vitals.