Engineering
Holiday Traffic Is a Performance Budget Problem
Right now, in marketing departments everywhere, the heaviest pages of the year are being designed: holiday landing pages with hero videos, countdown timers, personalization scripts, and a third-party tag for every vendor who promised incremental revenue. And in about five weeks, those pages will meet the highest-stakes traffic of the year, on mid-range phones, over mall wifi, held by people with seventeen tabs open and no patience.
We just wrapped holiday readiness work with Northwind, our third season doing it, so this is a good moment to write down the playbook. The core insight is unglamorous: holiday performance is not an engineering sprint in November. It is a budget negotiation in October.
Set the budget before the creative
A performance budget is a number with authority: this template does not ship above these thresholds. We set them per template, not per site, because a product listing page and a campaign landing page have different jobs. For Northwind this season the campaign page budget looks like this:
LCP (p75, mobile): under 2.0s
INP (p75): under 200ms
JS shipped: under 300KB compressed
Third-party tags: 12 max, all async, none render-blocking
The crucial move is sequencing. The budget is agreed with marketing and design before holiday creative is concepted, which converts every later conversation from conflict into arithmetic. Nobody argues about whether the hero video is too heavy; we look at the ledger and decide what it displaces. Budgets do not slow creative teams down. Ambiguity does.
The third-party tag audit nobody wants to run
Every year, the biggest single win is the same: deleting things. Commerce sites accrete tags the way ships accrete barnacles, and October is scraping season. This year's audit at Northwind found tags for two vendors whose contracts ended in 2024, an A/B testing script loading on pages with no experiments, and duplicate analytics snippets from a platform migration.
Our rule: every tag has a named internal owner, a documented business case, and a measured cost. No owner, no tag. This audit removed nearly 400 milliseconds from mobile LCP before we optimized a single image. Deleting is the highest-ROI performance work that exists, and it requires zero cleverness, only permission.
Load testing the boring way
Traffic modeling for holiday 2025 has a new wrinkle: a growing slice of commerce traffic is agentic. Shopping assistants and price-comparison bots hit product pages and inventory APIs in patterns human-centric load models miss, and several clients saw those patterns for the first time this year. We now load test three profiles: the human browse-and-buy journey, the flash-sale spike, and a sustained bot-crawl pattern against the API layer. Cache strategy handles most of it, but only if you test for it deliberately.
The other discipline is a freeze calendar with teeth. Code freeze two weeks before the first big promotion, exception process with sign-off, and a rehearsed rollback for every release that does ship. Half of holiday incidents are not capacity failures, they are Tuesday-afternoon deploys that would have been fine in March.
Speed is a brand decision
Here is the framing that finally lands this work with leadership. During the holidays, your site's speed is experienced by more customers than any campaign you will run. A slow page communicates the same thing a messy store communicates, and no amount of brand craft upstream survives a spinner at checkout. Conversely, a site that feels instant under Black Friday load is a trust signal money cannot buy in media.
Set the budgets now. Delete the barnacles. Rehearse the rollback. Then let the season be boring, because in commerce engineering, boring is the trophy.
Building something this could apply to?
We take on a small number of flagship projects each quarter.
Start a project