Skip to content
Clownmind logo
Engineering

Performance budgets only work when they fail the build

Every team we meet has a performance target. Almost none of them have a mechanism that stops a regression from shipping. Those are very different things.

MOMarcus OyelaranEngineering lead28 July 20267 min
Cover illustration for “Performance budgets only work when they fail the build”

A performance budget that lives in a slide deck is a wish. A performance budget that lives in your CI pipeline and turns a pull request red is a constraint. Only the second kind changes behaviour.

Why targets drift

Nobody ships a 400KB regression deliberately. It arrives as a chart library imported for one dashboard, a date utility pulled in whole, an analytics tag added by marketing with the best of intentions. Each addition is individually defensible. The aggregate is a site that got 40% heavier over two quarters and nobody can say exactly when.

Reviewers cannot catch this, because the diff never looks alarming. Machines can.

What we actually enforce

  • Route-level JavaScript budgets. Each route gets a byte ceiling. Exceeding it fails the build with the specific import that caused it.
  • Lighthouse CI on the three routes that matter. Home, category, checkout. Not every page — just the ones with a revenue argument attached.
  • Interaction latency in synthetic tests. INP is easy to regress and invisible in lab metrics unless you deliberately test it.
  • Real-user monitoring as the tiebreaker. Lab numbers tell you what changed; field numbers tell you whether it mattered.

The uncomfortable part

The first month after turning this on is unpleasant. Builds fail for reasons people find annoying, and somebody will ask for an exemption within the first week. Grant it, once, with an expiry date on it. What you are actually installing is the idea that page weight has an owner, and that owner is whoever wrote the pull request.

Six months later the arguments stop, because the budget has become part of how the team thinks rather than something imposed on it.

Keep reading

Bring us the messy version

Thirty minutes with an engineer who has done this before.

No sales sequence. One reply from a senior engineer, usually within a working day.

Packages

Our Website Development Packages

Fixed-price builds for the websites businesses ask us for most — from a four-page static site to a fully custom Laravel store. Each package spells out what is included, links to live sites we have built at that level and demos you can click through, so you know exactly what you are paying for before work starts.

5-8 Pages

WordPress Dynamic Website

₹25,000+18% GST

Demo links

  • Normal theme
  • Up to 4 banners on the home page
  • Dynamic website
  • Up to 8 pages
  • Query form with 4 fields
  • Social media page linking
Ask about this package
10 Pages

Dynamic Website

₹40,000+18% GST

Demo links

  • Technology: HTML5, CSS3, Laravel, MySQL
  • Responsive design for mobile
  • Normal theme
  • Up to 4 banners on the home page
  • Dynamic website
  • Up to 10 pages
Ask about this package
15 Pages

Professional Website

₹49,999+18% GST

Demo links

  • Technology: HTML5, CSS3, Laravel, MySQL
  • Responsive design for mobile
  • Visually appealing theme
  • Up to 4 banners on the home page
  • Dynamic or static website
  • 15 pages
Ask about this package

Prices are in Indian rupees and exclude 18% GST. Domain, hosting, paid themes, plugins and app subscriptions are billed at cost. Somewhere between two packages, or need something that is not listed? Ask for a quote — it usually takes one call.

Want a second opinion before you spend the budget?

Half an hour with a senior engineer. No slides, and no sales call pretending to be something else.