This commit implements comprehensive performance optimizations to improve the PageSpeed Insights score from 70/100 to targeting 90+. ## Images & Assets (Est. 200+ KiB savings) - Optimize vocalinux.png: 207KB → 44KB (79% reduction) - Add WebP versions for all logo sizes (32, 64, 96, 192, 512px) - Create og-image.webp: 274KB → 176KB (36% reduction) - All WebP images provide ~92% size reduction over PNG ## JavaScript Optimization (Est. 84 KiB savings) - Lazy load react-syntax-highlighter with next/dynamic - Created CodeBlock component for async code highlighting - Reduces initial bundle size by deferring heavy syntax highlighter ## Bundle Configuration - Disable production source maps (reduces bundle size) - Add .browserslistrc targeting modern browsers (est. 12 KiB savings) - Remove legacy browser polyfills (IE11, old Android, etc.) ## Critical Rendering Path (Est. 300ms LCP improvement) - Add preconnect hint for api.github.com - Defer Google Analytics to lazyOnload strategy ## Caching Strategy - Add cache headers configuration for static assets - Cache-Control: public, max-age=31536000, immutable - Applied to _next/static/* and image assets ## Accessibility Fixes - Fix footer color contrast: text-zinc-500 → text-zinc-400 - Add prefers-reduced-motion media query support - All animations respect user motion preferences ## Expected Impact - Total estimated LCP reduction: ~1.5-2 seconds - Bundle size reduction: ~100 KB - Targeting 90+ performance score (up from 70)
13 lines
340 B
Plaintext
13 lines
340 B
Plaintext
# Modern browsers for optimal bundle size and performance
|
|
# Targets browsers with >0.2% market share, last 2 versions, and not dead
|
|
> 0.2%
|
|
last 2 versions
|
|
not dead
|
|
|
|
# Exclude very old browsers to reduce polyfill size
|
|
# This saves ~12KB in bundle size by removing legacy browser support
|
|
not ie 11
|
|
not op_mini all
|
|
not samsung 4
|
|
not android 4
|