The 3 landing screenshots were 2.3 MB of PNG (feed.png alone 1.6 MB, decoded at 2400x1350 for a ~400px slot) — the biggest LCP/transfer cost on the public page. Re-encoded to WebP capped at 1600px (~284 KB total, feed 91% smaller). Also set Cache-Control: content-hashed /assets/* are immutable for a year, other SPA-root static files (welcome images, favicon, robots) get a 7-day TTL; index.html stays no-cache. Register image/webp+avif mimetypes so FileResponse serves the right Content-Type. Lighthouse (dev): Perf 80->93, LCP 1.8s->1.2s.
76 KiB
1600x900px
76 KiB
1600x900px