Most tutorials teach you how to build a button. This post teaches you why the browser renders that button, what happens when a user clicks it on a phone with a 3G connection, and why your rendering strategy choice can make or break a business.

Frontend engineering is not the "easy" side of software. It's the side where every millisecond of latency is felt by a real human being, where you ship code that runs on hardware you don't control — thousands of device models, dozens of browser versions, network conditions ranging from fiber to 2G.

Let's break it down from the ground up.

Every modern frontend framework — React, Vue, Angular, Svelte — is built on the same core idea: UIs are compositions of reusable, encapsulated pieces called components.

But "make components" is where the easy part ends. The hard questions are: How big should a component be? When do you split one? How do they talk to each other?