2010 – 2026

Angular Versions

Every public release of Angular — Angular 2 in September 2016 through the current line — with ship dates, the Active / LTS / EOL support state per major, and the headline changes each one introduced. Angular ships a major roughly every six months, skipped version 3, and was preceded by a different framework — AngularJS (1.x), which reached end-of-life on December 31, 2021. Below: the per-version table, the Ivy renderer migration, the v17 “renaissance,” and the AngularJS lineage kept here so the two don’t get confused.

AngularJS (1.x) and Angular (2+) are two different frameworks

AngularJS is the original framework Google released in 2010 (1.0 in June 2012) — JavaScript, two-way data binding, the digest cycle. It reached end-of-life on December 31, 2021 and receives no further updates. Angular (no “JS”) is a ground-up rewrite first shipped as Angular 2 in September 2016 — TypeScript-first, component-based, on a six-month release cadence. They share a name and a team, not a codebase. Everything in the table below is Angular (2+); the AngularJS 1.x lineage is folded into the collapsible row at the bottom of the table for historical reference. See angular.dev for the current framework and the AngularJS end-of-life notice.

Support state

Active Active support — the current major, receiving regular updates and bug fixes (~6 months from release).
LTS Long-term support — critical fixes and security patches only (~12 months after active support ends).
EOL End of life — no further updates from the Angular team. Commercial extended support is available from third parties.

Each Angular major gets about 18 months of coverage: ~6 months of active support, then ~12 months of LTS. The support windows below are re-verified against angular.dev/reference/releases and endoflife.date/angular — this table is refreshed around each release.

Angular version table

Version
Angular 22
Active
Jun 3, 2026
Signal Forms, Angular Aria, and the Asynchronous Reactivity APIs reach stable. Angular AI integration; @boundary arrives as a developer preview.
  • Signal Forms reach stable — the signal-based forms model graduates out of preview, building on the reactive-primitives work from v16–v20.
  • Angular Aria and the Asynchronous Reactivity APIs are promoted to stable in the same release.
  • Angular AI integration for AI-assisted development workflows; @boundary ships as a developer preview (broader availability targeted for later in 2026).
  • The current major in active support — confirm exact features against the v22 announcement and the official changelog.
Version
Angular 21
LTS
Nov 19, 2025
Continued maturation of the signal-based reactivity model and zoneless change detection introduced across v19–v20.
  • The November 2025 major on Angular’s six-month cadence; now in LTS (security and critical fixes through May 2027).
  • Continued stabilization of signals, the resource() API, and zoneless change detection that landed across the prior two majors.
  • See the v21.0.0 release notes for the full feature list.
Version
Angular 20
LTS
May 28, 2025
Signals (effect, linkedSignal, toSignal) stabilize; zoneless change detection and incremental hydration mature.
  • Core signal APIs reach stableeffect(), linkedSignal(), and toSignal() graduate from preview, consolidating the reactivity model that began as a developer preview in v16.
  • Zoneless change detection and incremental hydration continue maturing toward general availability.
  • The build and SSR stack settles on the Vite + esbuild application builder introduced at v17.
  • See the v20 announcement for details.
Version
Angular 19
EOL
Nov 19, 2024
Incremental hydration, standalone-by-default, linkedSignal and the resource() API preview, event replay on by default.
  • Incremental hydration (in developer preview) — hydrate parts of a server-rendered page on demand, pairing with @defer.
  • Standalone by default — new components, directives, and pipes are standalone unless opted out; the schematic flags non-standalone declarations.
  • linkedSignal() and the resource() API arrive as previews; event replay is enabled by default for SSR apps.
  • Reached end-of-life on May 19, 2026. See the Angular blog.
Version
Angular 18
EOL
May 22, 2024
Zoneless change detection (experimental), Angular Material 3 stable, unified @if/@for/@switch and @defer stable, event replay.
  • Experimental zoneless change detection — the first opt-in path to running Angular without Zone.js, built on signals.
  • The built-in control flow (@if, @for, @switch) and deferrable views (@defer) introduced in v17 reach stable.
  • Angular Material 3 ships stable; event replay (capturing user events during hydration) becomes generally available.
  • Reached end-of-life on November 21, 2025.
Version
Angular 17
EOL
Nov 8, 2023
The “Angular renaissance”: new brand and logo, the angular.dev docs site, built-in control flow, deferrable views, Vite + esbuild builder, stable SSR hydration.
  • The renaissance release. A new brand identity and logo, and a new documentation home at angular.dev — the most visible reset the framework has had since the 2016 rewrite. (See the renaissance history below.)
  • Built-in control flow@if, @for, and @switch as template syntax, replacing the structural directives *ngIf / *ngFor / *ngSwitch.
  • Deferrable views (@defer) for built-in lazy loading; view transitions support.
  • The Vite + esbuild application builder becomes the default; SSR and hydration ship stable, with ng new --ssr.
Above this line: the post-renaissance era — built-in control flow, signals, standalone-by-default, and the Vite/esbuild build, from Angular 17 (November 2023) onward. Below: the Ivy and pre-Ivy releases that set it up.
Version
Angular 16
EOL
May 3, 2023
Signals developer preview, non-destructive hydration for SSR, esbuild-based dev server preview, required inputs, takeUntilDestroyed.
  • Angular Signals arrive as a developer preview — the reactive primitive that reshapes change detection over the following majors.
  • Non-destructive hydration for server-side rendering — the client reuses server-rendered DOM instead of re-rendering it, removing the long-standing content flicker.
  • esbuild-based dev server in developer preview; required component inputs; takeUntilDestroyed and the DestroyRef API; self-closing component tags.
Version
Angular 15
EOL
Nov 16, 2022
Standalone APIs reach stable. Directive composition API, NgOptimizedImage, functional router guards.
  • Standalone components, directives, and pipes reach stable — the NgModule-optional path graduates from the v14 preview. The single biggest architectural shift since Ivy.
  • Directive composition API; NgOptimizedImage for automatic image performance; functional router guards and tree-shakable router APIs.
  • Stable MDC-based Angular Material components.
Version
Angular 14
EOL
Jun 2, 2022
Standalone components (developer preview), typed reactive forms, inject(), Angular CLI auto-completion.
  • Standalone components arrive in developer preview — the first step toward making NgModule optional.
  • Typed reactive formsFormGroup / FormControl become strictly typed, a long-requested fix.
  • The inject() function for dependency injection outside constructors; Angular CLI shell auto-completion.
Version
Angular 13
EOL
Nov 3, 2021
View Engine removed — Ivy-only. IE11 support dropped. Dynamic component creation API.
  • View Engine is removed entirely — Ivy is now the only renderer, completing the migration that began at v8. Libraries must ship Ivy-compiled.
  • Internet Explorer 11 support dropped, allowing smaller, more modern output.
  • Simplified dynamic component creation API; persistent build cache on by default.
Version
Angular 12
EOL
May 13, 2021
“Ivy Everywhere”: View Engine deprecated. Webpack 5, nullish coalescing in templates, strict mode default.
  • “Ivy Everywhere.” View Engine is deprecated; the ecosystem is pushed to compile against Ivy ahead of its v13 removal.
  • Webpack 5 support; nullish coalescing (??) in templates; strict mode on by default for new projects.
  • Deprecation of the legacy i18n message-ID format and Protractor groundwork.
Version
Angular 11
EOL
Nov 11, 2020
Automatic font inlining, updated Hot Module Replacement, faster builds, experimental webpack 5 opt-in.
  • Automatic inlining of Google Fonts; updated Hot Module Replacement support via the CLI.
  • Faster builds and stricter type-checking; experimental webpack 5 opt-in.
  • Moving off TSLint toward ESLint begins (third-party angular-eslint).
Version
Angular 10
EOL
Jun 24, 2020
Stricter project setup, new date range picker in Angular Material, TypeScript 3.9, CommonJS import warnings.
  • A stricter ng new --strict project setup; warnings on CommonJS imports that defeat tree-shaking.
  • New date range picker in Angular Material; TypeScript 3.9 baseline.
  • A smaller, faster release that came just four months after v9 to re-sync the cadence.
Version
Angular 9
EOL
Feb 6, 2020
The Ivy renderer becomes the default across the framework — smaller bundles, faster builds, better debugging.
  • Ivy is the default renderer and compilation pipeline. The multi-year rewrite of Angular’s rendering engine ships on by default — smaller bundles, faster compilation, improved type-checking in templates, and better stack traces. (See the Ivy history below.)
  • Improved internationalization; component-level providers tree-shaking.
  • The release that made Ivy real for every Angular app, after the v8 opt-in preview.
Version
Angular 8
EOL
May 28, 2019
Ivy opt-in preview, differential loading, dynamic imports for lazy routes, ng deploy.
  • Ivy renderer in opt-in preview — the first publicly testable build of the new rendering engine.
  • Differential loading — the CLI ships separate modern (ES2015+) and legacy bundles so modern browsers download less.
  • Dynamic import() syntax for lazy-loaded routes; ng deploy via Angular CLI builders.
Version
Angular 7
EOL
Oct 18, 2018
CLI prompts, CDK virtual scrolling and drag-and-drop, bundle-budget defaults.
  • Interactive CLI prompts on ng new and ng add.
  • Angular Material / CDK virtual scrolling and drag-and-drop.
  • Default bundle budgets that warn when an app grows past a size threshold.
Version
Angular 6
EOL
May 4, 2018
ng update and ng add, Angular Elements, tree-shakable providers, unified versioning of CLI / framework / Material at v6.
  • Unified versioning. The Angular framework, the CLI, and Angular Material all jump to v6 together and release in lockstep from here on — the moment the version numbers across the toolchain converge.
  • ng update and ng add for automated dependency upgrades and package install schematics.
  • Angular Elements — package Angular components as framework-agnostic custom elements; tree-shakable providers via providedIn.
Version
Angular 5
EOL
Nov 1, 2017
Build optimizer, HttpClient, Angular Universal state transfer, improved decorator support.
  • Build optimizer enabled by default for production builds — smaller bundles via dead-code removal.
  • The new HttpClient (replacing the older Http) becomes the recommended HTTP API.
  • Angular Universal state transfer and DOM support; improved internationalized date/number/currency pipes.
Version
Angular 4
EOL
Mar 23, 2017
Smaller and faster, *ngIf/else, animations split into their own package. (Version 3 was skipped — see below.)
  • There is no Angular 3. The team jumped from 2 to 4 so the @angular/router package — already at v3 — would line up with the rest of the framework under one version number. (See the strip below.)
  • Smaller and faster generated code; *ngIf with an else clause and as bindings.
  • Animations moved out of @angular/core into their own @angular/animations package; TypeScript 2.1+ support.
There is no Angular 3. Version 3 was skipped: the @angular/router package had already reached v3 ahead of the other packages, so the team jumped straight from Angular 2 to Angular 4 in March 2017 to bring every package under a single version number.
Version
Angular 2
EOL
Sep 14, 2016
The ground-up rewrite. TypeScript-first, component-based, RxJS, the Angular CLI. A different framework from AngularJS.
  • A complete rewrite, not an upgrade. Angular 2 dropped the “JS”, the controllers / $scope / digest-cycle model, and the two-way-binding-by-default architecture of AngularJS. (See the rewrite history below.)
  • TypeScript-first and component-based — a tree of components with explicit inputs and outputs, dependency injection, and RxJS observables for async.
  • Shipped after a long, public 2.x beta / RC cycle through 2015–2016; the Angular CLI and Angular Universal (SSR) arrived alongside.
  • The start of the modern Angular lineage and the version table above.
Below this line: AngularJS (1.x) — the original, separate framework. It is end-of-life (December 31, 2021) and unsupported; it’s kept here for historical reference and to disambiguate it from Angular (2+) above.
Version
AngularJS 1.x
EOL
2010 – 2021
The original framework. Two-way data binding, the digest cycle, directives. End-of-life December 31, 2021.
End of life: AngularJS reached end of long-term support on December 31, 2021. It receives no security or compatibility updates. Do not start new projects on AngularJS; migrate existing ones to Angular or another maintained framework.
  • AngularJS 1.0 shipped in June 2012, after a first public release of the project (originally “GetAngular”) in 2010. Created by Miško Hevery and Adam Abrons at Google.
  • Defined by two-way data binding, the digest cycle, $scope, controllers, and directives — an approach that made small apps fast to build and large apps hard to reason about.
  • Notable 1.x milestones: 1.2 (2013), one-time bindings in 1.3 (2014), the migration-friendly .component() API in 1.5 (2016), and the final 1.7 / 1.8 line.
  • AngularJS and Angular (2+) are separate frameworks; the 2016 rewrite did not carry the AngularJS architecture forward. See the AngularJS support-status notice.

Each row anchors as #angular-N (e.g. #angular-22, #angular-17, #angular-9); the AngularJS lineage anchors as #angularjs-1x. Support states are re-verified against angular.dev/reference/releases and endoflife.date/angular — this table is refreshed around each release.

AngularJS, and why Angular is a different framework

AngularJS began as a side project by Miško Hevery (with Adam Abrons) at Google around 2009, originally branded “GetAngular.” Its pitch was two-way data binding: bind a model to the DOM and the two stay in sync automatically, without the manual glue code that jQuery-era front ends were drowning in. AngularJS 1.0 shipped in June 2012, and through the mid-2010s it became one of the most widely adopted front-end frameworks, anchoring the original “MEAN” (MongoDB / Express / Angular / Node) stack.

The same design that made AngularJS productive for small apps made large apps hard. The digest cycle — AngularJS’s mechanism for detecting changes by repeatedly comparing model values — got expensive as applications grew, and the $scope inheritance model was a frequent source of confusion. By 2014 the Angular team concluded the architecture couldn’t evolve into what modern web apps needed, and announced a ground-up rewrite.

That rewrite became Angular 2 in September 2016 — a different framework that kept the brand. AngularJS continued in parallel under long-term support and reached end of life on December 31, 2021. The naming convention the team settled on: “AngularJS” means 1.x; “Angular” (no JS) means 2 and later. Confusing the two is the single most common Angular-versioning mistake, which is why this page keeps the AngularJS lineage clearly fenced off in its own collapsible row.

The 2016 rewrite, TypeScript, and the six-month cadence

Angular 2 rebuilt the framework around components — a tree of self-contained pieces with explicit inputs and outputs — and around TypeScript, Microsoft’s typed superset of JavaScript. The TypeScript choice was consequential: Google’s Angular team had been developing its own typed-JavaScript dialect called AtScript, and merged that effort into TypeScript instead, which is one reason decorators and other Angular-driven features shaped the language. (See the TypeScript Versions page for the language side of that story.)

After a long, public beta and release-candidate cycle through 2015–2016, Angular 2.0 shipped in September 2016. The team then adopted semantic versioning with a time-based release schedule: a major roughly every six months (historically around May and November), each with one to three minor releases, and a published support window of about six months of active support plus twelve months of long-term support.

The visible oddity of that scheme is that there is no Angular 3. By the time the post-2 release was being numbered, the @angular/router package had independently reached version 3, ahead of the other packages. Rather than ship a framework whose router was a major version ahead of everything else, the team skipped 3 and released everything together as Angular 4 in March 2017 — and the whole toolchain (framework, CLI, Material) converged on unified versioning at v6 in 2018.

Ivy — the multi-year renderer rewrite

Ivy was Angular’s rewrite of its own compilation and rendering pipeline — the engine that turns templates into the instructions a browser runs. The goals were smaller bundles (through better tree-shaking and locality of reference), faster compilation, clearer error messages, and improved template type-checking. It was one of the largest investments in the framework’s history and rolled out deliberately over several majors.

The progression: opt-in preview in Angular 8 (May 2019), default renderer in Angular 9 (February 2020), the old View Engine deprecated in Angular 12 (“Ivy Everywhere,” May 2021), and removed entirely in Angular 13 (November 2021). Ivy is the foundation the later signals, standalone-components, and zoneless work was built on — none of the v16-onward reactivity changes would have been practical on the old engine.

The Angular renaissance (v17 onward)

By the early 2020s Angular had a reputation as stable but heavy, and losing developer mindshare to lighter alternatives. Starting around 2023 the team mounted a deliberate reset that the community came to call the “Angular renaissance.” Its public face was Angular 17 (November 2023): a new brand and logo, and a new documentation site at angular.dev built around interactive tutorials.

The substance underneath the rebrand was a run of architectural changes shipped across consecutive majors. Signals — a fine-grained reactive primitive — arrived as a developer preview in v16 (May 2023) and stabilized through v20 (May 2025), reshaping how change detection works and setting up zoneless Angular (no Zone.js), which became experimental in v18. Standalone components made NgModule optional (preview in v14, stable in v15, default in v19). Built-in control flow (@if / @for / @switch) and deferrable views (@defer) replaced older structural directives, and the build moved to Vite + esbuild.

Server-side rendering and hydration, long an Angular weak spot, became stable in v17 and gained non-destructive then incremental hydration through v16–v19. The arc continued into Signal Forms and the Asynchronous Reactivity APIs reaching stable in Angular 22 (June 2026). Maintained by Google’s Angular team, the framework competes with React and Vue as one of the major front-end view layers; for the language it’s built on, see the TypeScript Versions page.

Find your Angular version — in the terminal

The browser cannot detect which Angular version a project uses — Angular is a build-time dependency, not a runtime your browser exposes. Run one of these in the project directory to see what you’re on.

What version is this project on?

ng version prints the Angular CLI, @angular/core, and the major dependency versions for the current workspace.

$ ng version              # Angular CLI + framework + dependency versions
$ npx ng version          # if the CLI isn't installed globally
$ npm ls @angular/core     # the exact installed framework version

Read it from the project files

No CLI needed — the version is pinned in package.json (the range you allow) and package-lock.json (the exact resolved version).

// package.json
"dependencies": {
  "@angular/core": "^22.0.0",
  "@angular/cli":  "^22.0.0"
}

Update to a newer Angular

Angular upgrades go one major at a time. ng update runs the migration schematics; the interactive Update Guide lists every breaking change between two versions.

$ ng update @angular/core@22 @angular/cli@22
# Step-by-step diff between any two versions:
# https://angular.dev/update-guide

Sources: angular.dev/reference/releases; github.com/angular/angular CHANGELOG; blog.angular.dev; Angular Update Guide; endoflife.date/angular; AngularJS support status. Cross-reference: TypeScript Versions, JavaScript Versions. Last updated June 2026.

Mungomash LLC · More software pages

Shipped 2026-06-23 by Hyperion — initial build; Angular 22 current, support states verified against angular.dev and endoflife.date.