Requirements
- Next.js 15 or 16, App Router
- Node 20+
- A production build. crust refuses to measure
next dev— dev output is unminified, unbundled and HMR-laden, so any number taken from it is fiction.
1. Build, then analyze
.perf/ — one file per build, so two branches recording builds never
conflict.
2. See it visually
3. Compare against a baseline
After a change, rebuild and diff:Unlock per-file attribution
Route sizes, rendering modes, dynamic-route blame and shell composition all work out of the box. Tracing bytes to a specific file needs source maps in the production build:next.config.ts
packages/features/src/course/… is 340 kB of it”.
Next steps
Add the CI check
Budgets, a PR comment, and snapshot history on an orphan branch.
Run it in your app
A floating panel in your running app, gated out of production builds.