Performance & Infrastructure
Web Development
Give Speed a Budget, Or the Carousel Wins
Performance dies by committee, and the minutes always read the same. Nobody at any meeting voted for a slow site. Everybody, across a dozen meetings, voted for one more thing. The carousel that satisfied four departments. The chat widget sales wanted piloted. The third analytics tag. The social buttons. The hero video.
Each decision was locally defensible. Several were individually reasonable. And the page arrives at three megabytes, slow on cable and punishing on cellular, with no decision anyone can point to as the mistake.
We have audited enough of these sites, and honestly watched the dynamic gnaw at projects of our own. The problem is structural: speed loses because it is the only stakeholder without a number. The brand has guidelines. Legal has requirements. Every department has its feature. Speed has a vibe, and vibes lose votes.
The corrective, which acquired its name and its momentum this year, is the performance budget. It is the most useful governance idea to reach front-end work since the style guide. A performance budget is just giving speed a seat at the table. Without a number, speed loses every argument.
What a performance budget is
The concept, as Tim Kadlec crystallized it in January and as teams like the BBC’s responsive group have been practicing in public. Before design begins, set hard limits that the experience must not exceed, and enforce them when decisions get made.
The limits can be expressed several ways, and mature budgets usually combine them. Total page weight, the bluntest and most legible: say, under a megabyte per template. Request counts, since each asset is a round trip, per the math our speed series has taught. And time-based targets: load milestones on a named connection profile, which is what users actually feel, and what our London analysis showed they feel most on cellular.
The specific numbers matter less than their two properties. They are set before the arguments start. And they are hard, meaning a proposal that busts the budget triggers a trade rather than an exception. That is the entire mechanism, and its power is that it changes what kind of conversation a feature request is.
The sentence that changes meetings
Without a budget, the carousel conversation is aesthetics and politics, and the developer’s ‘it will slow things down’ is one opinion against four departments’ desires.
With a budget, the conversation is arithmetic. The carousel costs 400 kilobytes and twelve requests. The template has 180 kilobytes of headroom. What are we removing to afford it?
Notice what that sentence does. It does not say no. Budgets are not vetoes. It prices the request and asks the room to make the trade explicitly, which is what every other budget in the organization already does.
Sometimes the room pays: removes the video, compresses the imagery, and takes the carousel. Sometimes the room discovers the carousel was wanted at zero cost and not at actual cost, which is the discovery that was always needed.
Either way, the decision is made in daylight, owned by the deciders, and the three-megabyte page can no longer assemble itself out of unaccountable increments. Speed stops being the developer’s plea and becomes a shared constraint, like the visual identity or the legal review. A thing the project simply respects.
Making it real: numbers, tooling, enforcement
Set the numbers from evidence, not aspiration. Benchmark competitors and exemplars. Public data makes this an afternoon. Look at your own analytics for connection and device reality, and pick limits that are ambitious but arguable. A budget nobody believes in enforces nothing.
Wire measurement into the workflow. The budget lives or dies on visibility. Weigh templates at every build, chart the trend, and make the current number as easy to see as the design comps. Teams that measure weekly argue rarely. The chart does the arguing.
Budget the third parties, especially. The fastest-growing weight on most sites is other people’s code. Tags, widgets, embeds. The budget is the instrument that finally gives those requests a price at the door. Our tag-governance advice acquires its enforcement mechanism here. Every tag proposal arrives with its kilobyte and request cost attached, or it waits.
Put it in the contract. For commissioned work, the budget belongs in scope with acceptance measurement attached, per the requirements language our responsive fine-print piece supplied. Vendors who welcome the clause are selling the outcome.
What a budget looks like on a real project
Numbers make disciplines credible, so a composite from this year’s engagements. A university responsive rebuild set its budget at launch planning. Templates under 800 kilobytes and 45 requests, interactive in under five seconds on a throttled cellular profile.
The budget survived three tests during the project. A departmental hero-video request arrived priced, 1.4 megabytes, and left as a click-to-play poster frame at a tenth the weight. The trade was made in one meeting, in daylight.
A vendor’s event widget arrived at 300 kilobytes of scripts. The budget conversation produced, within a week, the vendor’s own lighter embed, which apparently existed all along for customers who asked. We pass that along for exactly that reason.
And at acceptance, the templates weighed in with headroom, which the launch retrospective treated as an achievement worth a slide. Because it was. Headroom is future features pre-funded.
None of these moments required heroics or vetoes. Each required only that the number existed before the request did. That is the entire discipline, and its whole cost is one planning conversation held early. The three-megabyte committee page, by contrast, is free right up until the analytics arrive.
Why the responsive era makes this non-optional
The discipline matters now because the fluid era removed the old excuse. A fixed-width site could pretend its audience was desktop broadband. A responsive site explicitly serves the cellular visitor, the mid-range phone, the London-style peak where the mobile share spikes exactly when attention does.
Adapting layout while shipping desktop weight is the responsive-in-name-only failure our December fine print named. The budget is the instrument that prevents it. The constraint that makes ‘works beautifully at phone width’ include the loading, not just the layout.
Our own practice has adopted budgets as default on responsive engagements this year, and the early findings match the public case studies. The budget conversations are awkward exactly once, the first time a beloved feature meets its price. Thereafter the discipline is simply how decisions get made, the way nobody relitigates the existence of the brand palette.
Speed needed a governance mechanism. It has one now, it fits on an index card, and the carousel finally has an honest opponent. Set the numbers this quarter, before the next feature request does.