Render on the server by default
Server Components remove enormous amounts of JavaScript from the client. We start every route as a server component and only reach for client boundaries when interactivity demands it, keeping bundles small and hydration cheap.
Cache deliberately
Fast pages are cached pages. We split routes into static shells and dynamic holes, tag data by entity and revalidate surgically so users see fresh content without paying for a full render on every request.
Measure what users feel
Lab scores are a starting point, but field data tells the truth. We track interaction latency and layout stability per route, and set budgets in CI so regressions never reach production.