AngularJS support and migration

We maintain AngularJS applications and move them to a current framework one route at a time, with old and new running side by side until the last screen has gone.

Vendor support

AngularJS 1.x
Support ended
Security fixes
Ended 31 December 2021

What you probably want to know first

Can you support our existing application?
Yes, provided you hold the source code or can obtain it. AngularJS itself has had no fixes since the end of 2021, so support means maintaining your application on a frozen framework. It is harder where the build relies on tools of the same age, such as Bower, Grunt and Protractor, or on UI libraries abandoned with the framework.
What happens in the first assessment?
Our fixed-price code audit, which takes one to two weeks. It starts with a short call, then read access to the code and, where possible, the hosting environment and database. We build the code, run automated analysis and read by hand the parts that matter. You get a written report in plain English and a walk-through call.
What access do you need?
Read access to the source code and, where possible, read-only access to the hosting environment and the database. Nothing changes on the live system: we work from a copy of the code, and where we look at production it is with read-only access. A confidentiality agreement can be signed before anything is shared.
What sets the cost and the timescale?
For the audit: the size of the code base and the number of applications, whether we can see the hosting and database as well as the code, and unusual or mixed technology that needs investigation. A migration is sized by the number of routes and how tangled the code is, and the audit fee is credited against follow-on work.
What have you done with systems like ours?
We have worked mostly on the Microsoft stack since 2012, and most of the systems we maintain were built by someone else. The Logtek case study describes taking over a custom asset management application, moving it to the cloud and maintaining and extending it since. The rest of our case studies are on the site.

AngularJS and Angular are different frameworks

AngularJS is the original framework from Google, first released in 2010, and the name covers every version numbered 1.x. Angular, without the JS, is its successor: a separate framework written in TypeScript, with a different architecture. The shared name leads many people to assume that moving from one to the other is a version upgrade. It is a migration.

AngularJS was a very popular choice for single-page applications in the first half of the 2010s, so a lot of business software has an AngularJS front end, with controllers, directives, $scope and two-way data binding throughout. Support ended on 31 December 2021. The applications still run, but the framework underneath them is frozen.

What tends to go wrong

  • No security fixes. Vulnerabilities found in AngularJS since the end of 2021 are not fixed by the project, and security scans and customer questionnaires flag the framework by name.
  • The libraries have stopped too. UI kits, grids and date pickers written as AngularJS modules were mostly abandoned along with the framework, and newer versions of the libraries they wrap often will not work with them.
  • The tooling has gone. Projects of this age commonly build with Bower, Grunt or Gulp and test with Protractor, which has itself been retired. Keeping the build working is a job in its own right.
  • Busy screens are slow. Every binding adds a watcher, and each digest cycle checks them all. Large tables and long forms become sluggish.
  • Data flow is hard to follow. Nested scopes, $rootScope events and $watch expressions let any part of a screen change any other, which makes faults hard to trace.
  • Hiring is harder. Developers expect to work with a current framework.

Your options

Stay for now, knowingly. Acceptable for an internal application with a limited life. Third parties sell paid extended support for AngularJS, which can cover a gap while a migration is planned. It does not bring back the libraries around the framework.

Migrate to Angular. The closest in structure: services, dependency injection and templates all have counterparts. Angular provides an upgrade library that runs both frameworks in one application, so components can be converted in turn.

Migrate to React or Vue. Equally valid, and sometimes a better fit for the team. There is no official bridge, so the usual method is to split the application by route.

How we approach a migration

We work incrementally, with old and new running side by side. The alternative, rebuilding the whole front end and switching over on one day, means maintaining two front ends for the length of the project with nothing delivered until the end.

First the existing application is put in order. The build is made repeatable and end-to-end tests are written around the main workflows, in a test tool that does not depend on AngularJS. Those tests then show that each migrated screen behaves as the old one did.

Then routes move one at a time. Shared pieces such as sign-in, navigation and the API client are built once in the new framework. Each route is rebuilt, released and watched in production before the next begins. The server API stays as it is, so the back end is not disturbed. When the last route has moved, AngularJS is removed from the build.

This is the staged method described under legacy software modernisation. If you want an independent view of the code base before committing, a code audit provides one at a fixed price. Older front ends built on other libraries are covered under Knockout and jQuery, and the support position is on our older web and desktop technologies page.

Recommended next step

Code audit

In one to two weeks at a fixed price you get an independent written view of the code base, its libraries and its build, so the choice between staying and migrating rests on evidence before anything larger is quoted.

What we do with AngularJS applications

Maintain it while you decide
Fixes and changes to the existing AngularJS application, with its build made repeatable.
Assess the code base
Size, structure, test coverage and third-party modules, and what each means for the route to take.
Migrate to Angular
A hybrid application runs AngularJS and Angular together while components and services are converted in turn.
Migrate to React or Vue
New screens are built in the chosen framework and take over one route at a time.
Replace abandoned libraries
Grids, date pickers and UI kits that exist only for AngularJS are swapped for maintained equivalents.
Add tests before moving
End-to-end tests around the main workflows show that each migrated route behaves as the old one did.

How a route-by-route migration runs

  1. Audit the application

    We count routes, controllers, directives and services, and list every third-party module with its status.

  2. Choose the target and the method

    Angular, React or Vue, and whether old and new share one page or are split by route.

  3. Prepare the old code

    The build is made repeatable and tests are added, so there is a dependable starting point to migrate from.

  4. Migrate route by route

    Each route is rebuilt, released and watched in production before the next one starts.

  5. Remove AngularJS

    When the last route has moved, the framework and its libraries are deleted from the build.

Support dates

Status is worked out against today's date each time this site is rebuilt. Dates come from the Microsoft product lifecycle; check there before relying on them.

AngularJS support dates
Version Released Security fixes end Status today
AngularJS 1.x 20 October 2010 31 December 2021 Support ended

All Older web and desktop technologies end-of-support dates

A good fit when

  • A security review or customer questionnaire has flagged AngularJS as unsupported.
  • A library you need has no AngularJS version, or the one you use has been abandoned.
  • The application has years of life ahead and changes regularly.
  • Developers are reluctant to work on the code base.

Probably not for you if

  • The application is an internal tool close to retirement; the risk may be acceptable for its remaining life.
  • The front end is small enough to rebuild in one go; staging would add overhead for no benefit.

Questions we are asked

Is AngularJS still supported?

No. Support for AngularJS 1.x ended on 31 December 2021, and the project has issued no security or bug fixes since. AngularJS is a different framework from Angular, meaning version 2 and later, which is actively developed.

Is it unsafe to keep running AngularJS?

The application will not stop working, but any vulnerability found in the framework now stays open. How much that matters depends on what the application does and who can reach it. A public application handling personal or payment data is a stronger case for moving than an internal tool.

Should we move to Angular, React or Vue?

All three are sound choices. Angular is closest in structure, with services and dependency injection, and has an official upgrade library that lets the two run together. React and Vue are lighter and may suit a smaller team. The skills you have, or can hire, usually decide it.

Can the old and new front ends run at the same time?

Yes, and that is how we work. Either both frameworks run in one page, with new components replacing old ones, or the application is split by route so that some addresses are served by the new front end. Users see one application and the server API stays the same.

How long does a migration take?

It depends on the number of screens and how tangled the existing code is. A small application can move in a matter of weeks. A large one is a staged programme over months, delivered a route at a time. The audit gives a specific answer.

Tell us about your system

Say what it does, what it is built on and what is worrying you. We will reply with what we would look at first and whether we are the right people to help.

Discuss your AngularJS application 0800 433 7990 Monday to Friday, 9am to 5pm. A first 20-minute call is free, and we reply to every enquiry within one working day. What happens after you get in touch