Stable Status for effect() and linkedSignal()

Angular 20 has arrived, and rather than introducing a slew of brand-new capabilities, this release focuses on stabilizing features that were previously in Developer Preview. Notable promotions to Stable include effect() and linkedSignal(). For teams operating under rigid compliance standards, this is the official green light to adopt Signals.

Zoneless Reaches Developer Preview

Zoneless Angular has also been elevated, moving from Experimental to Developer Preview. While this is encouraging progress, it's important to remember that features in Developer Preview—and particularly those in Experimental—are still subject to breaking changes within the same major version. In rare circumstances, such features might even be deprecated.

resource Remains Experimental

However, not all Experimental features are at the same maturity level. Consider the resource() functions: they've been available for a while, have undergone an RFC process, and the community feedback from that RFC has been integrated into Angular 20.

Consequently, despite the Experimental label, resource() appears far more polished than other new additions in v20, such as the initial Vitest support.

For developers uncertain about a specific feature's stability status, a resource like Jérôme Grignon's

Angular CoursesAngular Can I Use - Feature Compatibility & Migration Guide

Discover Angular features, their compatibility across versions, and migration paths. Built specifically for Angular developers to improve your development experience.

favicon angular.courses

serves as an excellent reference point.

Refreshed Style Guide

Beyond these status changes, Angular 20 introduces several key recommendations:

  • Favor marking class members as readonly or protected whenever it makes sense.
  • Switch to the inject() function instead of relying on constructor-based dependency injection, with a migration script available to facilitate the change.
  • The Component suffix can now be omitted from component class names.

Style Guide • Angular

The web development framework for building modern apps.

favicon angular.dev

Classic Structural Directives Deprecated

While not part of the style guide, another significant update is the deprecation of the structural directives *ngIf, *ngFor, and *ngSwitch.

This should pose minimal disruption, as the update tooling is designed to handle the migration automatically.

It is worth stressing that developers need to execute ng update rather than simply installing the latest version with a direct npm install to ensure these migrations are applied.

Profiling and DevTools Enhancement

Angular 20 also includes an integration with the Chrome DevTools Profiler. However, this functionality isn't active by default; it must be activated by calling enableProfiling().

Launch Resources

There is a wealth of community-generated content available as usual. For the official word, the Angular v20 Release Event is available to rewatch on YouTube, and the corresponding technical details have been published in a blog post on Medium.

Community Mascot Selection

A call for community input has been opened to select an official mascot for Angular. The contenders currently include two types of fish and a character wearing an Angular-styled helmet. Voting takes place via the RFC linked below.

https://github.com/angular/angular/discussions/61733