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)
| Dimension | Angular (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.