Why independent deployment is the real boundary, why build-time composition keeps teams coupled, and why projection is a better primitive for loose microfrontends.

Microfrontends are usually sold as an organizational architecture. Several teams own different parts of the product. Each team can move at its own speed. The checkout team ships checkout. The search team ships search. The account team ships account. The host application stitches those pieces together into something that feels like one product.

That story is attractive because it maps cleanly to how large products are actually built. Teams already have ownership boundaries. Domains already have different cadences. The frontend is usually the place where all of that independence gets flattened into one visible surface, so it is natural to ask whether the frontend can preserve the same autonomy the backend learned to preserve years ago.

But the word "microfrontend" has become loose enough to hide the important question. A team can have its own folder, its own package, its own repository, and still be waiting on the same release train as everyone else. The useful question is not where the code starts. It is where the change is allowed to finish: can one team change and deploy its part of the user interface without forcing the whole application to be rebuilt, retested, and redeployed? If the answer is no, the architecture may be modular, but it is not independent. It is a monolith with microfrontend-shaped furniture inside it.