1 min read#performance#ci
A performance budget that actually holds
Budgets fail because nobody notices when they're broken. Put the number in CI, make the failure explain itself, and it holds for years.

Every team I’ve worked with has had a performance budget. Most of them lived in a document, and documents don’t fail builds.
Put the number where the work happens
The budget that held at Fieldnote was one line in CI: the first load of the dashboard may not grow by more than 20 kB in a pull request. When it did, the check failed and posted which files grew and by how much.
Make the failure explain itself
A red cross with no context gets overridden. A red cross that says “the chart library is now in the first load because Overview.tsx imports it” gets fixed in ten minutes.
Budget the things people feel
Kilobytes are a proxy. What people feel is the time to the first useful thing on screen, and how long the page takes to answer a tap. Measure those too, on a slow laptop, and keep the numbers in the pull request.