Your state changed. Sixteen milliseconds later, pixels are supposed to be different. This series is about everything that happens in between — and about why some changes make that window comfortable while others blow straight through it.
We walk the frame pipeline stage by stage, take apart the reconciliation intuitions that quietly lie to you, catch a layout thrash in the act, then look at compositor layers and how frames actually get scheduled.
It is a browser-first series, but the ideas travel: any renderer that batches work into frames has the same shape of problem.