Sub-200ms is not a stretch goal; it is a default
Most product teams treat 200ms page loads as ambitious. They should be the floor.
There is a kind of resignation built into most product roadmaps: "we will get to performance once the feature is shipped." By the time the team gets there, the performance is structural and impossible to fix without a rewrite.
Why 200ms?
Because that is the threshold at which a user stops perceiving a delay. Above it, the app feels slow even if every other thing is right. Below it, the app feels fast even if some things are wrong.
What it actually takes
- Read paths served from RAM, not disk
- A cache that is correct without polling
- Database queries that only run on real misses
- A CDN that does its job and stops there
None of this is exotic. It is what good products do. The reason most do not is the cost of getting there with hand-written code. Generated code changes the cost.