Back to docs
Recipe

Performance budgets

Lock in speed before you ship — set hard limits on bundle size, request count, and Core Web Vitals so regressions never reach production.

Why budgets matter

Without a budget, every feature adds weight. A performance budget is a contract between engineering and product — if a PR exceeds the limit, it fails CI. Meridian enforces budgets at build time and in the browser via Lighthouse CI.

Define your limits

Start with three numbers. Adjust after every sprint retro.

  • JavaScript budget: 170 kB minified + compressed per route.
  • Request budget: 25 total requests on first load.
  • LCP budget: Largest Contentful Paint under 2.5 s on 3G.

Enforce in CI

Add a lighthouserc.js at the repo root with assert blocks. Wire it into your GitHub Actions workflow. Meridian's own dashboard runs Lighthouse on every deploy — if the score drops, the release is blocked.

Monitor drift

Budgets are not set-and-forget. Track bundle size over time with the Meridian analytics panel. When a route trends toward the limit, schedule a trim sprint before it breaks.

Next step

Once budgets are in CI, lock down your third-party tags with the tag governance recipe.