Performance budgets shifted from aspirational metrics to hard gates that prevent regressions from entering production systems.

Bundle Size Limits in CI Pipelines

GitHub Actions and GitLab CI now fail builds when JavaScript bundles exceed defined thresholds. Tools like Bundlesize and Size Limit compare current builds against previous commits, rejecting pull requests that add more than 5KB without explicit approval. This stops gradual bloat that accumulates over months.

Core Web Vitals as Merge Requirements

Lighthouse CI runs performance audits on every commit, measuring Largest Contentful Paint and Cumulative Layout Shift against target values. Teams set thresholds at 2.4 seconds for LCP and 0.08 for CLS, automatically blocking merges that exceed limits.

Database Query Time Tracking in Tests

Integration test suites now fail when individual queries take longer than allocated milliseconds. Rails and Django added helpers that measure query execution time, flagging N+1 problems before code review. A checkout flow test might enforce 80ms total query time, preventing accidental joins across six tables.

Memory Consumption Caps for Containerized Services

Kubernetes admission controllers reject deployments requesting more than budgeted memory. Teams define resource limits per service, and deployment manifests that exceed allocations trigger automated reviews. This prevents services from claiming resources they rarely use.

Real User Monitoring Thresholds Trigger Rollbacks

Deployment systems monitor actual user metrics during rollouts, automatically reverting when page load times degrade. Vercel and Netlify introduced performance-based progressive delivery that halts deployments affecting more than 8% of users negatively.