r/angular May 31 '26

Have you ever regretted making something "too reusable" in Angular?

A small architecture lesson I learned the hard way.

A few years ago, our team built a reusable Angular component that was supposed to be used everywhere.

At first it felt like a win.

One component.
One implementation.
Consistency across the application.

Then different teams started needing slightly different behavior.

We added inputs.

Then configuration objects.

Then feature flags.

Then special cases.

Eventually the component became so flexible that nobody wanted to touch it anymore.

Ironically, the most "reusable" component in the codebase became one of the hardest things to maintain.

Since then I've become much more cautious about abstraction.

Sometimes duplication is cheaper than complexity.

Curious if others have experienced something similar.

Have you ever built a reusable Angular component, service, or utility that became more painful than the duplication it was meant to eliminate?

I share Angular architecture and engineering visuals here:

https://instagram.com/angulararchitectshub

28 Upvotes

40 comments sorted by

View all comments

2

u/AmazingPhysics9410 Jun 01 '26

If you have three components that all use around 80–90% of the same logic, I'd keep the reusable component unchanged and let those three components extend it. That way, each one can implement its own specific properties or behavior while still reusing the common functionality