performance.now().reject(reasons)

Are we there yet? We’ve been at this make-performance-happen-now game for over a decade but the progress is slow: adoption of basic best practices (e.g. optimizing images, optimizing critical path, etc) is a struggle; inconsistent adoption of HTTP/2 priorities signals industry hurdles we didn’t account for; we’re back at the drawing board on key performance primitives (e.g. prefetch and prerender) that were supposed to save the day. Why, what are the reasons, and what can we do to improve our odds as we head into the new decade? Let’s talk.