Angular vs React: What I Learned Building an Enterprise Admin UI
The admin UI for Z-Laser — the internal tool we use to manage and monitor Zimbra mail infrastructure — is built in Angular, not React. Here's what that choice actually felt like in practice.
Structure is enforced, not chosen
Angular's module/service/component split means every developer on the team ends up with roughly the same file organization without a style guide enforcing it. In React, that consistency has to be built and maintained deliberately — usually worth it, but it's work Angular does for free.
Dependency injection makes role-based access clean
Guards and interceptors give you a single, testable place to enforce role-based access control on routes and HTTP calls:
@Injectable({ providedIn: 'root' })
export class AdminGuard implements CanActivate {
canActivate(): boolean {
return this.auth.hasRole('admin');
}
}
Doing the equivalent in React means composing your own HOC or hook convention — not hard, but it's a decision every team makes slightly differently.
What I missed from React
Angular's change detection and RxJS observables are powerful but have a real learning curve, and debugging an unexpected re-render is less intuitive than in React's more explicit model. For a small, high-velocity team, I'd still reach for React first. For a larger team where consistency matters more than flexibility, Angular's opinions stop being a constraint and start being a feature.