T9 Lighthouse rerun: homepage Performance scores 68 desktop / 55-59 mobile (target ≥85). Documentation pages all hit 99-100; issue is isolated to /.
Findings
- Total page weight on
/: ~5.4 MB
- Three.js hero (
@react-three/fiber, @react-three/drei, three) is the dominant payload
- LCP 3.85s (target ≤2.5s)
- Lighthouse insights:
unsized-images, font-display, unused-javascript
Caveat
T9 measured on a Bun proxy that lacks HTTP/2, Brotli, edge cache — real Vercel CDN should improve numbers meaningfully. Verify on Vercel preview before treating these scores as canonical.
Mitigation options
- Defer Three.js — dynamic-import the hero scene only after first paint
<img> width/height attributes (fixes unsized-images + CLS bonus)
font-display: swap on Geist @font-face (already swap; verify)
unused-javascript — likely tree-shaking gap in lucide-react
Out of scope for the redesign PR
Performance landing under the 95-bar across the board would be ideal, but only the homepage misses. Treat as iterative optimization pass.
T9 Lighthouse rerun: homepage Performance scores 68 desktop / 55-59 mobile (target ≥85). Documentation pages all hit 99-100; issue is isolated to
/.Findings
/: ~5.4 MB@react-three/fiber,@react-three/drei,three) is the dominant payloadunsized-images,font-display,unused-javascriptCaveat
T9 measured on a Bun proxy that lacks HTTP/2, Brotli, edge cache — real Vercel CDN should improve numbers meaningfully. Verify on Vercel preview before treating these scores as canonical.
Mitigation options
<img>width/height attributes (fixesunsized-images+ CLS bonus)font-display: swapon Geist @font-face (already swap; verify)unused-javascript— likely tree-shaking gap in lucide-reactOut of scope for the redesign PR
Performance landing under the 95-bar across the board would be ideal, but only the homepage misses. Treat as iterative optimization pass.