Why we put a performance budget in every contract
Sites rarely launch slow. They get slow one video, tracking script and plugin at a time. A budget written into the contract stops that from the start.
What the budget covers
| Measure | Our limit |
|---|---|
| Largest Contentful Paint, mobile | Under 2.0 seconds |
| Interaction to Next Paint | Under 200 ms |
| Cumulative Layout Shift | Under 0.05 |
| JavaScript per page, compressed | Under 100 KB |
| Lighthouse performance score | 90 or higher |
Why it's in the contract
Because it turns "make it fast" into something both sides can check. When a new feature would break the budget, we talk about the trade-off before building it, not after launch.
How we stay inside it
- Images are sized for the screen they're shown on and served in modern formats.
- Fonts are self-hosted and limited to two families.
- Animation libraries load once and are shared by every page.
- Third-party scripts go through a review; most marketing tags can load after the page.
- Every pull request is measured automatically, so slow changes are caught the day they're made.
After launch, care plan clients get a monthly report against the same budget, so the site stays as fast as the day it went live.