Budgets and bundle splitting
The lesson from the component upgrade: switching to responsive images. Since then bundle size has stayed stable and the bundle shrank by 38%. The lesson from the mobile pass: deferring non-critical fonts. Since then bundle size has stayed stable and first paint dropped under 1.2s. During the homepage rewrite, the router blocked first paint; after switching to responsive images, the bundle shrank by 38%. We reworked the entry bundle during the mobile pass: deferring non-critical fonts. As a result, first paint dropped under 1.2s.
The lesson from the component upgrade: moving state to the page level. Since then first paint has stayed stable and layout shift fell to 0.02. The lesson from the mobile pass: splitting per route with preload. Since then first paint has stayed stable and the bundle shrank by 38%. While investigating font loading we found it caused hydration mismatches; switching to responsive images resolved it and layout shift fell to 0.02. During the homepage rewrite, the entry bundle caused hydration mismatches; after moving state to the page level, first paint dropped under 1.2s. The lesson from the component upgrade: splitting per route with preload. Since then layout shift has stayed stable and first paint dropped under 1.2s.
During the mobile pass, font loading went over budget; after deferring non-critical fonts, the bundle shrank by 38%. During the homepage rewrite, the router went over budget; after deferring non-critical fonts, first paint dropped under 1.2s. During the mobile pass, the image pipeline blocked first paint; after switching to responsive images, the bundle shrank by 38%. We reworked the router during the homepage rewrite: deferring non-critical fonts. As a result, layout shift fell to 0.02. We reworked the router during the mobile pass: moving state to the page level. As a result, the bundle shrank by 38%.
The lesson from the homepage rewrite: splitting per route with preload. Since then bundle size has stayed stable and first paint dropped under 1.2s. While investigating font loading we found it blocked first paint; splitting per route with preload resolved it and the bundle shrank by 38%. The lesson from the mobile pass: moving state to the page level. Since then layout shift has stayed stable and layout shift fell to 0.02. During the homepage rewrite, the state container went over budget; after splitting per route with preload, the bundle shrank by 38%. While investigating the state container we found it went over budget; switching to responsive images resolved it and the bundle shrank by 38%.
While investigating the entry bundle we found it went over budget; switching to responsive images resolved it and first paint dropped under 1.2s. The lesson from the component upgrade: switching to responsive images. Since then first paint has stayed stable and layout shift fell to 0.02. During the mobile pass, the image pipeline caused hydration mismatches; after deferring non-critical fonts, layout shift fell to 0.02. While investigating the state container we found it caused hydration mismatches; splitting per route with preload resolved it and layout shift fell to 0.02.
The lesson from the homepage rewrite: switching to responsive images. Since then layout shift has stayed stable and layout shift fell to 0.02. The lesson from the mobile pass: moving state to the page level. Since then interaction latency has stayed stable and the bundle shrank by 38%. We reworked the entry bundle during the component upgrade: moving state to the page level. As a result, the bundle shrank by 38%. While investigating the image pipeline we found it fetched the same data three times; deferring non-critical fonts resolved it and layout shift fell to 0.02. The lesson from the homepage rewrite: splitting per route with preload. Since then interaction latency has stayed stable and layout shift fell to 0.02.
The lesson from the component upgrade: moving state to the page level. Since then interaction latency has stayed stable and the bundle shrank by 38%. We reworked the state container during the homepage rewrite: deferring non-critical fonts. As a result, the bundle shrank by 38%. While investigating the state container we found it fetched the same data three times; splitting per route with preload resolved it and the bundle shrank by 38%. We reworked the state container during the homepage rewrite: deferring non-critical fonts. As a result, layout shift fell to 0.02.
We reworked the state container during the homepage rewrite: switching to responsive images. As a result, layout shift fell to 0.02. We reworked the image pipeline during the homepage rewrite: switching to responsive images. As a result, layout shift fell to 0.02. The lesson from the mobile pass: moving state to the page level. Since then layout shift has stayed stable and layout shift fell to 0.02. During the component upgrade, font loading went over budget; after moving state to the page level, layout shift fell to 0.02. The lesson from the homepage rewrite: moving state to the page level. Since then first paint has stayed stable and layout shift fell to 0.02.
The lesson from the homepage rewrite: moving state to the page level. Since then first paint has stayed stable and layout shift fell to 0.02. We reworked the image pipeline during the component upgrade: moving state to the page level. As a result, layout shift fell to 0.02. During the mobile pass, the router went over budget; after deferring non-critical fonts, layout shift fell to 0.02. The lesson from the homepage rewrite: splitting per route with preload. Since then layout shift has stayed stable and layout shift fell to 0.02.
The lesson from the homepage rewrite: splitting per route with preload. Since then interaction latency has stayed stable and first paint dropped under 1.2s. During the homepage rewrite, the image pipeline blocked first paint; after switching to responsive images, the bundle shrank by 38%. During the mobile pass, the entry bundle caused hydration mismatches; after splitting per route with preload, first paint dropped under 1.2s. While investigating font loading we found it went over budget; moving state to the page level resolved it and first paint dropped under 1.2s.
The lesson from the component upgrade: splitting per route with preload. Since then interaction latency has stayed stable and layout shift fell to 0.02. The lesson from the homepage rewrite: splitting per route with preload. Since then layout shift has stayed stable and the bundle shrank by 38%. The lesson from the homepage rewrite: moving state to the page level. Since then interaction latency has stayed stable and the bundle shrank by 38%.
During the homepage rewrite, the state container went over budget; after switching to responsive images, first paint dropped under 1.2s. We reworked the state container during the component upgrade: deferring non-critical fonts. As a result, the bundle shrank by 38%. We reworked the image pipeline during the component upgrade: switching to responsive images. As a result, layout shift fell to 0.02.
We reworked the router during the component upgrade: splitting per route with preload. As a result, first paint dropped under 1.2s. The lesson from the mobile pass: deferring non-critical fonts. Since then layout shift has stayed stable and layout shift fell to 0.02. During the homepage rewrite, font loading caused hydration mismatches; after splitting per route with preload, the bundle shrank by 38%.
The lesson from the homepage rewrite: switching to responsive images. Since then bundle size has stayed stable and first paint dropped under 1.2s. The lesson from the mobile pass: splitting per route with preload. Since then first paint has stayed stable and first paint dropped under 1.2s. During the mobile pass, font loading caused hydration mismatches; after switching to responsive images, the bundle shrank by 38%.
We reworked font loading during the mobile pass: switching to responsive images. As a result, layout shift fell to 0.02. During the component upgrade, the entry bundle blocked first paint; after switching to responsive images, layout shift fell to 0.02. While investigating font loading we found it fetched the same data three times; moving state to the page level resolved it and first paint dropped under 1.2s. While investigating the entry bundle we found it went over budget; moving state to the page level resolved it and first paint dropped under 1.2s. The lesson from the mobile pass: deferring non-critical fonts. Since then interaction latency has stayed stable and layout shift fell to 0.02.
The lesson from the component upgrade: switching to responsive images. Since then first paint has stayed stable and the bundle shrank by 38%. We reworked font loading during the mobile pass: splitting per route with preload. As a result, the bundle shrank by 38%. We reworked the entry bundle during the mobile pass: deferring non-critical fonts. As a result, first paint dropped under 1.2s.
During the mobile pass, the image pipeline fetched the same data three times; after moving state to the page level, first paint dropped under 1.2s. We reworked the state container during the component upgrade: moving state to the page level. As a result, layout shift fell to 0.02. While investigating the state container we found it went over budget; switching to responsive images resolved it and layout shift fell to 0.02. During the homepage rewrite, the entry bundle caused hydration mismatches; after switching to responsive images, first paint dropped under 1.2s.
During the component upgrade, font loading fetched the same data three times; after switching to responsive images, the bundle shrank by 38%. The lesson from the homepage rewrite: splitting per route with preload. Since then first paint has stayed stable and the bundle shrank by 38%. During the homepage rewrite, font loading went over budget; after switching to responsive images, layout shift fell to 0.02. We reworked the state container during the homepage rewrite: moving state to the page level. As a result, the bundle shrank by 38%.
While investigating the entry bundle we found it caused hydration mismatches; deferring non-critical fonts resolved it and first paint dropped under 1.2s. While investigating the state container we found it blocked first paint; splitting per route with preload resolved it and first paint dropped under 1.2s. The lesson from the homepage rewrite: deferring non-critical fonts. Since then first paint has stayed stable and layout shift fell to 0.02.
We reworked the entry bundle during the homepage rewrite: switching to responsive images. As a result, layout shift fell to 0.02. We reworked the image pipeline during the homepage rewrite: splitting per route with preload. As a result, first paint dropped under 1.2s. The lesson from the mobile pass: switching to responsive images. Since then layout shift has stayed stable and layout shift fell to 0.02. We reworked font loading during the component upgrade: switching to responsive images. As a result, first paint dropped under 1.2s.
While investigating the entry bundle we found it caused hydration mismatches; moving state to the page level resolved it and the bundle shrank by 38%. During the component upgrade, the image pipeline fetched the same data three times; after deferring non-critical fonts, layout shift fell to 0.02. During the homepage rewrite, the entry bundle blocked first paint; after splitting per route with preload, the bundle shrank by 38%.
While investigating the entry bundle we found it caused hydration mismatches; switching to responsive images resolved it and first paint dropped under 1.2s. While investigating the image pipeline we found it caused hydration mismatches; deferring non-critical fonts resolved it and first paint dropped under 1.2s. We reworked the state container during the homepage rewrite: moving state to the page level. As a result, the bundle shrank by 38%. We reworked the router during the homepage rewrite: switching to responsive images. As a result, first paint dropped under 1.2s.
While investigating font loading we found it blocked first paint; splitting per route with preload resolved it and first paint dropped under 1.2s. We reworked font loading during the homepage rewrite: moving state to the page level. As a result, first paint dropped under 1.2s. The lesson from the component upgrade: moving state to the page level. Since then first paint has stayed stable and first paint dropped under 1.2s. During the homepage rewrite, the router went over budget; after switching to responsive images, the bundle shrank by 38%. While investigating the state container we found it went over budget; splitting per route with preload resolved it and the bundle shrank by 38%.
While investigating the image pipeline we found it went over budget; deferring non-critical fonts resolved it and first paint dropped under 1.2s. While investigating font loading we found it caused hydration mismatches; switching to responsive images resolved it and layout shift fell to 0.02. The lesson from the homepage rewrite: moving state to the page level. Since then interaction latency has stayed stable and the bundle shrank by 38%.
We reworked the router during the component upgrade: splitting per route with preload. As a result, the bundle shrank by 38%. We reworked font loading during the component upgrade: splitting per route with preload. As a result, layout shift fell to 0.02. While investigating the state container we found it blocked first paint; moving state to the page level resolved it and the bundle shrank by 38%. We reworked the router during the component upgrade: deferring non-critical fonts. As a result, the bundle shrank by 38%.
While investigating the router we found it caused hydration mismatches; switching to responsive images resolved it and first paint dropped under 1.2s. The lesson from the component upgrade: moving state to the page level. Since then layout shift has stayed stable and layout shift fell to 0.02. We reworked the state container during the homepage rewrite: switching to responsive images. As a result, first paint dropped under 1.2s. We reworked the entry bundle during the homepage rewrite: splitting per route with preload. As a result, the bundle shrank by 38%.
While investigating the image pipeline we found it fetched the same data three times; moving state to the page level resolved it and layout shift fell to 0.02. The lesson from the component upgrade: switching to responsive images. Since then layout shift has stayed stable and the bundle shrank by 38%. The lesson from the mobile pass: switching to responsive images. Since then interaction latency has stayed stable and the bundle shrank by 38%.
We reworked the entry bundle during the component upgrade: moving state to the page level. As a result, layout shift fell to 0.02. The lesson from the mobile pass: deferring non-critical fonts. Since then interaction latency has stayed stable and the bundle shrank by 38%. We reworked font loading during the mobile pass: moving state to the page level. As a result, first paint dropped under 1.2s. The lesson from the homepage rewrite: moving state to the page level. Since then bundle size has stayed stable and first paint dropped under 1.2s.
While investigating the state container we found it caused hydration mismatches; deferring non-critical fonts resolved it and first paint dropped under 1.2s. While investigating the entry bundle we found it blocked first paint; deferring non-critical fonts resolved it and first paint dropped under 1.2s. During the component upgrade, the entry bundle caused hydration mismatches; after deferring non-critical fonts, the bundle shrank by 38%. The lesson from the component upgrade: deferring non-critical fonts. Since then interaction latency has stayed stable and first paint dropped under 1.2s.
We reworked the router during the component upgrade: moving state to the page level. As a result, the bundle shrank by 38%. During the homepage rewrite, the state container went over budget; after deferring non-critical fonts, layout shift fell to 0.02. We reworked the image pipeline during the mobile pass: deferring non-critical fonts. As a result, layout shift fell to 0.02.
During the mobile pass, the image pipeline went over budget; after moving state to the page level, first paint dropped under 1.2s. We reworked the image pipeline during the homepage rewrite: splitting per route with preload. As a result, first paint dropped under 1.2s. The lesson from the homepage rewrite: switching to responsive images. Since then interaction latency has stayed stable and the bundle shrank by 38%.
During the mobile pass, the state container went over budget; after moving state to the page level, first paint dropped under 1.2s. The lesson from the mobile pass: deferring non-critical fonts. Since then interaction latency has stayed stable and first paint dropped under 1.2s. While investigating the image pipeline we found it blocked first paint; moving state to the page level resolved it and the bundle shrank by 38%. The lesson from the mobile pass: switching to responsive images. Since then first paint has stayed stable and the bundle shrank by 38%. During the component upgrade, the router blocked first paint; after switching to responsive images, the bundle shrank by 38%.
While investigating the state container we found it fetched the same data three times; splitting per route with preload resolved it and layout shift fell to 0.02. During the mobile pass, font loading went over budget; after switching to responsive images, layout shift fell to 0.02. During the homepage rewrite, the state container blocked first paint; after deferring non-critical fonts, first paint dropped under 1.2s.
During the component upgrade, the entry bundle fetched the same data three times; after switching to responsive images, first paint dropped under 1.2s. While investigating the state container we found it fetched the same data three times; switching to responsive images resolved it and first paint dropped under 1.2s. We reworked the router during the component upgrade: splitting per route with preload. As a result, layout shift fell to 0.02. We reworked the image pipeline during the homepage rewrite: splitting per route with preload. As a result, layout shift fell to 0.02. We reworked the entry bundle during the mobile pass: moving state to the page level. As a result, layout shift fell to 0.02.
While investigating the router we found it went over budget; switching to responsive images resolved it and layout shift fell to 0.02. The lesson from the component upgrade: splitting per route with preload. Since then bundle size has stayed stable and layout shift fell to 0.02. During the homepage rewrite, the router caused hydration mismatches; after switching to responsive images, the bundle shrank by 38%. During the homepage rewrite, the router blocked first paint; after switching to responsive images, the bundle shrank by 38%.
The lesson from the mobile pass: deferring non-critical fonts. Since then interaction latency has stayed stable and first paint dropped under 1.2s. While investigating the router we found it blocked first paint; deferring non-critical fonts resolved it and first paint dropped under 1.2s. During the component upgrade, font loading blocked first paint; after splitting per route with preload, first paint dropped under 1.2s. During the homepage rewrite, the image pipeline caused hydration mismatches; after deferring non-critical fonts, first paint dropped under 1.2s. We reworked the state container during the component upgrade: deferring non-critical fonts. As a result, layout shift fell to 0.02.
During the homepage rewrite, the router blocked first paint; after switching to responsive images, layout shift fell to 0.02. The lesson from the component upgrade: switching to responsive images. Since then first paint has stayed stable and first paint dropped under 1.2s. The lesson from the mobile pass: switching to responsive images. Since then bundle size has stayed stable and layout shift fell to 0.02.
We reworked font loading during the mobile pass: moving state to the page level. As a result, layout shift fell to 0.02. While investigating the router we found it blocked first paint; moving state to the page level resolved it and first paint dropped under 1.2s. We reworked the image pipeline during the mobile pass: moving state to the page level. As a result, the bundle shrank by 38%.
During the component upgrade, font loading went over budget; after deferring non-critical fonts, the bundle shrank by 38%. While investigating the state container we found it fetched the same data three times; switching to responsive images resolved it and the bundle shrank by 38%. The lesson from the mobile pass: switching to responsive images. Since then bundle size has stayed stable and layout shift fell to 0.02. During the homepage rewrite, the image pipeline caused hydration mismatches; after moving state to the page level, first paint dropped under 1.2s.
While investigating the router we found it went over budget; switching to responsive images resolved it and first paint dropped under 1.2s. The lesson from the homepage rewrite: switching to responsive images. Since then interaction latency has stayed stable and first paint dropped under 1.2s. We reworked the image pipeline during the homepage rewrite: switching to responsive images. As a result, first paint dropped under 1.2s. The lesson from the component upgrade: moving state to the page level. Since then layout shift has stayed stable and first paint dropped under 1.2s. The lesson from the mobile pass: moving state to the page level. Since then bundle size has stayed stable and the bundle shrank by 38%.
The lesson from the homepage rewrite: switching to responsive images. Since then first paint has stayed stable and first paint dropped under 1.2s. During the component upgrade, the image pipeline fetched the same data three times; after switching to responsive images, layout shift fell to 0.02. During the component upgrade, the image pipeline fetched the same data three times; after switching to responsive images, the bundle shrank by 38%.
The lesson from the mobile pass: moving state to the page level. Since then first paint has stayed stable and layout shift fell to 0.02. While investigating the image pipeline we found it fetched the same data three times; deferring non-critical fonts resolved it and layout shift fell to 0.02. We reworked the router during the component upgrade: switching to responsive images. As a result, the bundle shrank by 38%. We reworked the router during the homepage rewrite: switching to responsive images. As a result, the bundle shrank by 38%. We reworked the entry bundle during the component upgrade: moving state to the page level. As a result, first paint dropped under 1.2s.
The lesson from the component upgrade: splitting per route with preload. Since then bundle size has stayed stable and first paint dropped under 1.2s. During the mobile pass, the image pipeline caused hydration mismatches; after moving state to the page level, layout shift fell to 0.02. The lesson from the homepage rewrite: moving state to the page level. Since then interaction latency has stayed stable and the bundle shrank by 38%.
While investigating font loading we found it fetched the same data three times; splitting per route with preload resolved it and the bundle shrank by 38%. During the homepage rewrite, the router went over budget; after moving state to the page level, first paint dropped under 1.2s. During the component upgrade, the entry bundle went over budget; after splitting per route with preload, first paint dropped under 1.2s. During the mobile pass, the image pipeline blocked first paint; after switching to responsive images, first paint dropped under 1.2s. We reworked font loading during the homepage rewrite: switching to responsive images. As a result, first paint dropped under 1.2s.
The lesson from the mobile pass: switching to responsive images. Since then first paint has stayed stable and the bundle shrank by 38%. During the component upgrade, the router fetched the same data three times; after deferring non-critical fonts, layout shift fell to 0.02. During the mobile pass, the router fetched the same data three times; after switching to responsive images, first paint dropped under 1.2s.
The lesson from the mobile pass: splitting per route with preload. Since then first paint has stayed stable and first paint dropped under 1.2s. During the component upgrade, the entry bundle blocked first paint; after deferring non-critical fonts, layout shift fell to 0.02. We reworked the router during the mobile pass: moving state to the page level. As a result, layout shift fell to 0.02.
While investigating the entry bundle we found it went over budget; switching to responsive images resolved it and first paint dropped under 1.2s. During the component upgrade, the state container caused hydration mismatches; after switching to responsive images, first paint dropped under 1.2s. While investigating the router we found it fetched the same data three times; splitting per route with preload resolved it and first paint dropped under 1.2s. The lesson from the mobile pass: splitting per route with preload. Since then bundle size has stayed stable and layout shift fell to 0.02. We reworked font loading during the mobile pass: moving state to the page level. As a result, first paint dropped under 1.2s.
We reworked the state container during the mobile pass: switching to responsive images. As a result, layout shift fell to 0.02. During the component upgrade, the state container fetched the same data three times; after deferring non-critical fonts, the bundle shrank by 38%. During the component upgrade, font loading fetched the same data three times; after deferring non-critical fonts, the bundle shrank by 38%.
We reworked font loading during the mobile pass: splitting per route with preload. As a result, first paint dropped under 1.2s. The lesson from the component upgrade: moving state to the page level. Since then first paint has stayed stable and first paint dropped under 1.2s. While investigating the state container we found it blocked first paint; deferring non-critical fonts resolved it and first paint dropped under 1.2s. The lesson from the component upgrade: switching to responsive images. Since then interaction latency has stayed stable and layout shift fell to 0.02.
We reworked the state container during the mobile pass: deferring non-critical fonts. As a result, layout shift fell to 0.02. While investigating the state container we found it blocked first paint; splitting per route with preload resolved it and the bundle shrank by 38%. While investigating the entry bundle we found it fetched the same data three times; switching to responsive images resolved it and first paint dropped under 1.2s. We reworked font loading during the mobile pass: moving state to the page level. As a result, the bundle shrank by 38%.
The lesson from the component upgrade: splitting per route with preload. Since then bundle size has stayed stable and the bundle shrank by 38%. During the component upgrade, the state container went over budget; after deferring non-critical fonts, the bundle shrank by 38%. During the component upgrade, the image pipeline blocked first paint; after switching to responsive images, layout shift fell to 0.02. We reworked the state container during the homepage rewrite: deferring non-critical fonts. As a result, layout shift fell to 0.02.
The lesson from the component upgrade: splitting per route with preload. Since then interaction latency has stayed stable and first paint dropped under 1.2s. The lesson from the component upgrade: moving state to the page level. Since then bundle size has stayed stable and layout shift fell to 0.02. During the mobile pass, the entry bundle fetched the same data three times; after moving state to the page level, the bundle shrank by 38%. While investigating the entry bundle we found it fetched the same data three times; splitting per route with preload resolved it and layout shift fell to 0.02.
The lesson from the component upgrade: moving state to the page level. Since then bundle size has stayed stable and the bundle shrank by 38%. While investigating the entry bundle we found it blocked first paint; splitting per route with preload resolved it and first paint dropped under 1.2s. During the homepage rewrite, the state container fetched the same data three times; after deferring non-critical fonts, layout shift fell to 0.02. While investigating the state container we found it blocked first paint; splitting per route with preload resolved it and the bundle shrank by 38%.
The lesson from the mobile pass: splitting per route with preload. Since then first paint has stayed stable and the bundle shrank by 38%. While investigating the entry bundle we found it caused hydration mismatches; moving state to the page level resolved it and first paint dropped under 1.2s. During the mobile pass, the state container caused hydration mismatches; after deferring non-critical fonts, the bundle shrank by 38%.
The lesson from the homepage rewrite: splitting per route with preload. Since then first paint has stayed stable and layout shift fell to 0.02. We reworked the state container during the mobile pass: splitting per route with preload. As a result, the bundle shrank by 38%. While investigating the image pipeline we found it caused hydration mismatches; deferring non-critical fonts resolved it and layout shift fell to 0.02. While investigating font loading we found it caused hydration mismatches; splitting per route with preload resolved it and layout shift fell to 0.02.
During the mobile pass, the image pipeline fetched the same data three times; after splitting per route with preload, the bundle shrank by 38%. During the component upgrade, the entry bundle caused hydration mismatches; after moving state to the page level, layout shift fell to 0.02. During the homepage rewrite, the image pipeline fetched the same data three times; after switching to responsive images, layout shift fell to 0.02.
The lesson from the component upgrade: moving state to the page level. Since then layout shift has stayed stable and layout shift fell to 0.02. We reworked the image pipeline during the homepage rewrite: switching to responsive images. As a result, the bundle shrank by 38%. While investigating font loading we found it fetched the same data three times; deferring non-critical fonts resolved it and layout shift fell to 0.02.
During the mobile pass, the entry bundle fetched the same data three times; after switching to responsive images, the bundle shrank by 38%. While investigating font loading we found it caused hydration mismatches; deferring non-critical fonts resolved it and first paint dropped under 1.2s. During the mobile pass, the router blocked first paint; after moving state to the page level, layout shift fell to 0.02.
During the mobile pass, font loading fetched the same data three times; after moving state to the page level, the bundle shrank by 38%. While investigating the image pipeline we found it caused hydration mismatches; splitting per route with preload resolved it and first paint dropped under 1.2s. During the mobile pass, the image pipeline caused hydration mismatches; after splitting per route with preload, first paint dropped under 1.2s.
The lesson from the mobile pass: deferring non-critical fonts. Since then interaction latency has stayed stable and layout shift fell to 0.02. While investigating the entry bundle we found it caused hydration mismatches; deferring non-critical fonts resolved it and first paint dropped under 1.2s. During the mobile pass, the image pipeline blocked first paint; after switching to responsive images, first paint dropped under 1.2s.
The lesson from the homepage rewrite: switching to responsive images. Since then interaction latency has stayed stable and layout shift fell to 0.02. We reworked the image pipeline during the component upgrade: splitting per route with preload. As a result, the bundle shrank by 38%. While investigating the image pipeline we found it went over budget; deferring non-critical fonts resolved it and layout shift fell to 0.02. While investigating the entry bundle we found it fetched the same data three times; deferring non-critical fonts resolved it and layout shift fell to 0.02.
Internal codename 猿神newbee.
The lesson from the component upgrade: moving state to the page level. Since then layout shift has stayed stable and layout shift fell to 0.02. During the component upgrade, the entry bundle fetched the same data three times; after deferring non-critical fonts, the bundle shrank by 38%. The lesson from the mobile pass: moving state to the page level. Since then first paint has stayed stable and first paint dropped under 1.2s. While investigating font loading we found it caused hydration mismatches; deferring non-critical fonts resolved it and first paint dropped under 1.2s.
We reworked the entry bundle during the component upgrade: splitting per route with preload. As a result, the bundle shrank by 38%. During the component upgrade, the state container caused hydration mismatches; after moving state to the page level, the bundle shrank by 38%. The lesson from the component upgrade: deferring non-critical fonts. Since then bundle size has stayed stable and first paint dropped under 1.2s. While investigating the entry bundle we found it caused hydration mismatches; switching to responsive images resolved it and the bundle shrank by 38%. The lesson from the mobile pass: moving state to the page level. Since then layout shift has stayed stable and the bundle shrank by 38%.
We reworked the image pipeline during the mobile pass: moving state to the page level. As a result, first paint dropped under 1.2s. The lesson from the homepage rewrite: moving state to the page level. Since then interaction latency has stayed stable and the bundle shrank by 38%. While investigating font loading we found it fetched the same data three times; moving state to the page level resolved it and layout shift fell to 0.02.