Skip to content

Skill · 06 of 09

speed fast to load, smooth to use

Performance and smoothness rules for websites and web apps. Covers Core Web Vitals (LCP, INP, CLS), JS/CSS/font/image budgets, Server Components vs 'use…

skills/speed/SKILL.md153 lines4 referencesupdated 16 Sept 2026

When Claude Code loads it

Use when building, reviewing or optimizing any website, landing page, marketing site, docs site or Next.js/React app; when adding a client component, animation library, hero image, font, analytics/chat script, video embed, canvas or shader; when a page feels slow, janky or shifts; or when `void perf`, `void smooth`, Lighthouse or PageSpeed report problems. Targets Next.js 16 App Router, React 19 and Tailwind 4, with portable guidance for Astro and other SSR stacks.

Targets are for a mid-range phone on Slow 4G (Lighthouse mobile: 150 ms RTT, 1.6 Mbps, 4x CPU). Verify every claim with void perf and void smooth against a production build (see the audit skill).

The 10 rules that matter most

  1. Server-render by default. 'use client' only on leaf components that need state, effects or event handlers. Never on page.tsx or layout.tsx.
  2. The LCP element is in the initial HTML and visible at first paint. No loading="lazy", no opacity:0 entrance, no CSS background-image, no waiting for data around it.
  3. One high-priority image per route: fetchPriority="high" + loading="eager" (or preload) on next/image. priority is deprecated in Next 16. Never use it.
  4. Every , ,