The two numbers that matter
For a solo builder, two numbers cover most of the contract. Interaction latency: the interface answers a tap within 200ms (the click window, filled with instant press feedback while slow work happens off the main thread). Frame rate: motion holds 60fps, meaning no frame over 16.7ms and no layout or paint inside animations. A team argues about these in meetings; a solo builder encodes them as rules in the codebase and lets the tools enforce them.
THE CONTRACT (two lines, printed above the desk):
1. Tap -> visible answer in 200ms (press state counts)
2. Motion -> 60fps (transform/opacity only, no layout per frame)
THE ENFORCEMENT (set up once):
- Lighthouse CI: budget JS <= 170kb gzip, LCP <= 2.5s
- A build-time rule: warn on any transition of
width/height/top/left (the layout-animators)
- A dev audit: record one animation in DevTools,
check for yellow layout blocks, run it weeklyThe solo audit, ten minutes a week
The solo performance audit is short because the codebase is small: record one core interaction (open the main page, run the main motion), and check three things in the trace — no yellow layout blocks inside the animation, no long task over 50ms on the critical path, and the network waterfall's biggest item is your own code, not a 2MB library. Ten minutes a week finds regressions the day they land. The budget is not a report card — it is the early-warning system that keeps a solo site from slowly rotting under dependencies nobody remembers adding.
- Budget the dependencies: every library is a monthly payment in bytes; a solo builder's rule of thumb is 'add it only when the code to replace it would be longer than the library'.
- Watch the third-party list: analytics, fonts, chat widgets — three 'small' scripts routinely outweigh the entire app; the audit's question is which ones the users actually need on first load.
- The 60fps rule is a CSS rule: transform and opacity only, will-change for long animations only, GPU layers counted — the same discipline as the team version, minus the meetings.