Back to notes

Essays

The best front-end architecture is a promise about future change

I judge architecture by how calmly it lets a team change its mind after the first release.

Frontend ArchitectureProduct EngineeringOpinion

I do not think front-end architecture is mainly about folders, state libraries, or whatever pattern is currently fashionable. Those choices matter, but they are symptoms. The real question is simpler: when the product changes, where does the pain go?

A good UI architecture makes an honest promise. It says this feature can grow here, this component owns that behavior, this state transition has a name, and this error path has been thought about before a customer finds it. That promise is more useful than cleverness.

The opposite is architecture by vibes. Everything looks fast at the start because nothing has a boundary yet. Then the second version arrives. A parent component reaches into a child. A route begins to know too much about a table. Loading and error states become copy-pasted guesses. The product did not become complex overnight; the code just had no place to put the complexity.

My bias is to make change visible early. Name the states. Keep product language in the code. Give feature areas ownership. Make the common case easy and the dangerous case obvious. I want a future engineer to open the file and understand what kind of product decision they are touching.

This is also why I am suspicious of abstractions that exist only to feel architectural. A layer that does not absorb change is decoration. A reusable component that cannot explain its product responsibility is a liability with a nice API.

The standard I care about is whether the system lets the team move without losing trust in the interface. Users feel architecture through speed, consistency, recovery, and whether the product behaves like it was built by people who understood the workflow.

That is the kind of front-end architecture I want to build: not impressive in a diagram, but steady under revision.