63 HTTP requests down to 22

Performancekamo-marketing
Ya
20 Agosti 2026, 14:55 UTC
Mwandishi
Kamo
Ahadi ya
54606f0

Implements the request-budget report. Measured the same way it was written — Chrome over the debugging protocol, mobile emulation, sixteen-second window. 63 requests -> 22 4,936 KB -> ~830 KB THE REEL IS TAP-TO-PLAY, ON EVERY DEVICE, AND STARTS WITH SOUND. Autoplay was spending roughly four megabytes across eight requests on visitors who had not asked to watch anything, and `loop` meant the count was a function of how long the tab stayed open rather than a fixed cost. Nothing about the video — no playlist, no segment, not even container headers — is requested until the play control is pressed. The poster keeps its old idle/in-view gating, because it is what the aperture shows and it is 1.8 KB. Starting unmuted only became defensible once a tap was required: the button is a request to watch the thing, and muting by default would mean pressing twice for what you already asked for. `start` falls back to muted if the browser refuses sound rather than leaving a dead frame. `loop` is replaced by a three-play budget, after which the reel stops and offers itself again. Narrow viewports drop to the 360p rendition. Being straight about that one: it was chosen when the reel was ambient decoration, and a tap is a deliberate request to watch. The gating is what removed the bytes; this is a second helping from a much smaller plate, and the comment says how to put it back. FOURTEEN PREFETCHES FOR THREE ROUTES. Next 16 prefetches per segment, so a single link can produce several requests: two links to /changelog generated SEVEN, one link to /cookies generated four, and the nav's three "/" links prefetched the page the reader was already on. Prefetch is off for those; the home links only opt out while on the homepage, so they stay warm from everywhere else. Pricing, features and contact keep theirs — that is where a click actually is. SEVEN LAZY CHUNKS BECOME THREE. Toast, the consent banner and the discount beacon always mount together, as do the two scroll widgets and the two easter eggs — seven `dynamic()` calls, most under 2 KB, where the request cost more than the payload. One bundle module per boundary. Same code, same timing, three requests instead of seven. THE CHANGELOG STRIP IS SERVER-RENDERED. It fetched /api/changelog at high priority after mount and rendered nothing until the response landed, pushing everything below it down. It reads through the same tag as the count in the layout now, and with the fetch went its last reason to be a client component — the one analytics call is a `data-track` attribute. ONE FONT, ONE LOGO, NO MANIFEST. Space Grotesk was a second preloaded face for three elements; the headline holds its character from weight and tracking instead. The wordmark is inline, defined once as a <symbol> and referenced by <use> in the nav and footer rather than duplicated into both — inline markup rides in every RSC payload, not just the HTML. The manifest link is gone: its icons point at /web-app-manifest-*.png while the files live under /favicon/, so it 404s on install and declares a white theme for a dark site. Verified end to end rather than by inspection: zero media requests before the tap; after it, `muted:false`, `paused:false`, source `v2/index.m3u8`, play control gone. Console and DevTools Issues both clean, and all five build guards pass.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei