One pattern kept repeating itself while working on large React applications:
frontend ecosystems slowly become fragmented.
At first, everything feels manageable.
You install:
one package for components
another for hooks
another for utilities
another for icons
another for design tokens/themes
Individually, these libraries are often excellent.
But as applications and teams scale, the operational cost quietly compounds.
Over time I started noticing recurring problems:
inconsistent APIs across packages
duplicated abstractions
bundle size growth
conflicting dependency upgrades
fragmented documentation
different engineering philosophies fighting each other
increasing cognitive overhead for teams
The bigger the frontend codebase became, the more time teams spent stitching ecosystems together instead of building actual product experiences.
The hidden frontend tax
What makes this problem interesting is that the pain usually appears gradually.
A project starts simple.
Then:
another utility gets…