IONICWEBCREATOR
Engineering Journal
Frontend

Performance budgets that actually hold

Setting a budget is easy. Keeping it once deadlines arrive is the hard part. Our approach to enforcing speed in CI, not in hindsight.

Jakir Hussian

Jakir Hussian · Founder & Engineering Lead

May 28, 20265 min read

Share

Updated May 28, 2026

A performance budget nobody enforces is a wish. The only budget that survives a deadline is one the pipeline refuses to merge past. So we move the check left — into CI, on every pull request.

Make the machine say no

We fail the build when a route's JavaScript crosses its budget. The threshold lives in config next to the code, and size-limit runs as a required check:

.size-limit.jsonjson
[
  { "path": ".next/static/chunks/app/engineering-journal/**", "limit": "70 kB" }
]

Server Components do the heavy lifting

The cheapest kilobyte is the one never shipped to the browser. Rendering on the server and shipping client islands only where interaction demands it keeps most routes near zero JavaScript — which is how a budget stays comfortable instead of constantly under threat.

  • #Performance
  • #CI/CD
  • #Next.js
Newsletter

New essays, in your inbox.

Occasional, considered writing on engineering products that scale. No cadence promises, no noise — only when we have something worth your time.

One or two emails a month. Unsubscribe anytime.

Building something that has to scale?

If the way we think about engineering matches the standard you're after, tell us what you're building. We'll be honest about fit and outline a concrete first step.