Carlos Cifuentes
Modernization · After the migration

After the migration: keeping the frontend current

The last AngularJS file is deleted. The codebase is modern today and will be legacy again in a few years unless someone keeps it current. This guide covers the routine that prevents a second migration.

By Carlos Cifuentes · Frontend architect · Updated 2026-10-02

Finish the migration properly

Before moving on, close what the migration left open:

  • Remove the upgrade layer, the legacy router and every AngularJS package from the dependency file.
  • Delete remaining migration flags and the code paths behind them.
  • Cancel any extended support subscription.
  • Tell your auditor or security team that the unsupported framework is gone, with the evidence.

How Angular releases work

Angular follows a published schedule. Through version 21 a new major arrived about every six months; starting with version 22 the schedule moved to one major a year. Each major version is supported for a limited period: an active phase followed by a long-term support phase with only critical fixes and security patches. After that, the version is unsupported.

The practical consequence: an Angular application that is never upgraded becomes unsupported software within a couple of years. That is the same situation you just left, reached more slowly. Check the current support dates on the official Angular site and put them in your planning calendar.

Set an upgrade cadence

Upgrading one major version is a small, routine task. The framework ships automated migrations through ng update that rewrite much of the affected code. Skipping several versions turns it into a project, because the automated steps are designed to be run one major at a time.

Choose a rule and write it down:

CadenceWhat it meansFits when
Every majorUpgrade within weeks of each releaseTeams with good tests and frequent releases
Fixed yearly windowUpgrade in a planned window each year, one major at a time if more than one is pendingTeams that prefer a fixed window
Never leave supportUpgrade before the current version loses long-term supportThe minimum acceptable rule

Whichever you choose, give it a name, an owner and time in the plan. "We will upgrade when there is time" is how the previous legacy was created.

Make upgrades cheap

  • Keep the end-to-end tests written during the migration. They are the safety net for every upgrade.
  • Fix deprecation warnings as they appear. Angular announces removals in advance. A warning ignored today is a breaking change later.
  • Use only public APIs. Code that reaches into framework internals breaks on upgrades.
  • Adopt new framework features gradually. New syntax and new patterns arrive with most releases. Use them in new code first, and convert old code where the official migrations do it for you. Avoid stopping feature work to rewrite everything for each novelty.
  • Automate dependency updates. A bot that opens pull requests for new versions keeps the gap small and visible.

Keep the dependency list short

Third-party libraries caused much of the pain in the AngularJS migration. They will do so again if the list grows without control.

  • Before adding a library, check who maintains it, how often it is released and whether it follows Angular's major versions.
  • Prefer the framework's own features and the platform over small utility packages.
  • Wrap each third-party UI component in a component of your own. Screens depend on your wrapper, so replacing the library later changes one file.
  • Review the dependency list twice a year. Remove what is unused and flag what looks abandoned.

The library migration index shows how many once-popular AngularJS libraries ended up without maintainers. The same will happen to some of today's libraries.

Assign ownership

Legacy forms when nobody is responsible for the platform. Name an owner for the frontend foundation: the framework version, the build, shared components and the upgrade schedule. In a small company this is one senior developer with reserved time. In a larger one it is a platform team or a guild with a clear mandate.

Signs that the next legacy is forming

  • The application is two or more major versions behind.
  • Deprecation warnings fill the build log and nobody reads them.
  • A library blocks the upgrade and there is no plan to replace it.
  • "Do not touch that module" has become common advice.

When two or three of these appear, act while the fix is still a small task.

What changes for the business

Staying current is a small recurring cost that replaces a large occasional one. It should appear in the budget as maintenance, the same way infrastructure does. If you made a business case for the migration, add one line to it: the yearly effort that keeps the result from decaying.

For teams still on older Angular versions, the AngularJS to Angular reference shows the current equivalents of older patterns.

More in this section

Planning a migration or a micro-frontend platform?

In a 20-minute call you describe your situation and I tell you how I'd approach it. If it isn't worth doing yet, I'll say so.

Message me on LinkedIn