What a Decade of Angular Taught Me
I started on AngularJS back when "the Angular way" meant controllers, $scope, and two-way
binding you had to be careful with. The framework has been rewritten more than once since then —
components replaced controllers, RxJS came in and then partly came back out with signals,
NgModules arrived and are now optional entirely. Some things I'd tell myself at the start:
The framework churn matters less than it feels like in the moment. Every "this changes everything" release (and there have been several, genuinely) turned out to be learnable in a weekend once it shipped with real docs and a migration path. What actually slowed teams down wasn't the new API — it was skipping incremental upgrades and trying to jump five majors at once.
Architecture decisions age worse than framework versions. A sloppy module boundary or a shared service that quietly became a god object will cost you more than any Angular major version bump. The framework gives you good defaults for structuring an app; it can't stop you from ignoring them under deadline pressure.
Micro-frontends are an organizational tool first, a technical one second. Native Federation or Module Federation, the mechanism matters less than whether the teams on either side of that boundary actually agree on what's shared and what's each team's own problem. Get the org agreement wrong and no amount of federation tooling fixes it.
Ten years in, the thing I still like about Angular is that it has an opinion. RxJS and signals, the router, forms, SSR — they're part of one coherent framework instead of a pile of hand-selected libraries, and for a team that needs to onboard people quickly and keep a codebase consistent at scale, that's worth more to me now than it was when I started.