Almost everything we discuss in product assumes there's a person on the other side, waiting.
The spinner, the transition animation, the three-line summary, the pagination. None of it solves a problem: it solves the impatience of someone looking at a screen.
Cloudflare just published a browser that throws all of that out and comes out slower on purpose, because its user is an agent and an agent doesn't get impatient.
The numbers
It's called Kitesurf. Cloudflare measured it against Chromium on a set of 14 sites.
- 3.1xless CPU to take a screenshot380 ms vs. 1,173 ms
- 3.8xless CPU to extract the HTML229 ms vs. 877 ms
- 4.7x to 7xless memory than Chromium57.8 vs. 271.0 MiB, and 39.4 vs. 273.7 MiB
- 1.7x to 1.8xslower in wall-clock time1.7x extracting HTML, 1.8x on screenshots
It took them 12 weeks to build. The first commit is from May.
What they removed says more than what they optimized
Tabs. Themes. Extensions. Sync. Pixel-perfect CSS. 60 fps scrolling.
All of that exists for one reason: someone was waiting on the other side. An agent doesn't get impatient, doesn't watch, and doesn't switch to another tab to see if it loads.
The equation, flipped
Same product, different user, opposite decision.
One person
Time is expensive. Memory is free. It makes sense to spend whatever it takes so the page shows up right now.
A thousand parallel sessions
Time is free. Memory is everything. It makes sense to take a bit longer if that lets you run more sessions together.
It's the cleanest product decision I've seen this year, and it isn't technical. It's asking who the user really is, and living with the answer.
The uncomfortable part
Part of your product doesn't solve a problem. It solves a person's wait: spinners, transition animations, three-line summaries, pagination, autocomplete.
Human-surface audit
A table with one row per feature and four columns. It takes an afternoon.
| Column | What you answer |
|---|---|
| 1. Feature | The name of what you're reviewing. |
| 2. Human wait | Does it exist because a person is waiting? Yes or no. |
| 3. If an agent consumed it | Is it unnecessary, in the way, or still useful? |
| 4. Cost of keeping it | Rendering, tokens, latency and maintenance. |
Everything that lands on “yes + unnecessary” is your human-interface debt. You don't have to delete it: you have to know how much it weighs before someone asks why your API costs what it costs.
The hard part for Cloudflare wasn't the rendering engine. It was accepting that the user had changed.