UI Strategy: Angular-first (React maintenance only)

Angular is now the primary UI and stays on the latest stable release line. React remains for legacy shells only, kept frozen and greyed (maintenance/security fixes only). The goal: minimize churn by standardizing on Angular while keeping a safe runway for existing React code.

Why third‑party UI libraries become a maintenance burden

  • Major framework upgrades change internals (rendering, compiler, build chain).
  • UI libraries lag behind (breaking peer deps, outdated patterns).
  • Enterprise apps accumulate many UI dependencies, multiplying upgrade conflicts.
  • Angular’s version cadence historically forces more “coordinated upgrades” across tooling.
Root issue: your UI becomes “framework + tooling + component-lib” tightly coupled. When any one moves, everything moves.

Trade-off comparison (Angular primary)

DimensionAngular (primary)React (legacy)What this means for NewSun
Architecture Opinionated, full framework (router, DI, forms) UI library; you pick router/state/forms We standardize on Angular for uniformity; React remains only where migration is pending.
Upgrade style Stay on latest stable; use schematics + ng update regularly Frozen, only CVE patches Churn is contained to Angular; React is kept static until retired.
Component libraries Angular Material/primeng/etc. — stay aligned with latest peer deps No new component libs; patch only if security-critical Design system wrapper remains the choke point for both.
TypeScript First-class, enforced Common and recommended Angular remains strongly typed; React stays on its existing TS setup.
Team structure Helps large teams standardize quickly Needs conventions (lint, templates) for consistency We lean on Angular conventions; React discipline remains only for legacy support.
Long-term maintainability Great if you stay near supported versions Stable if frozen and CVE-patched Primary path is Angular; React timelines shrink as we migrate screens.

Recommendation for your situation

Angular: stay on latest stable and use schematics/lint autofixes quickly (60-day SLA). React: freeze at 19.x, patch CVEs only, and migrate screens to Angular over time. Keep the internal design-system wrapper to isolate third‑party churn in both stacks.