Below is a categorized breakdown of all the changes:
- What's Stable Now
- New but Still Unstable (Developer Preview / Experimental)
- Brand New Features
- Improvements
- Deprecated and Should Be Avoided
At the end, I’ll share some of my personal highlights 👇
✅ What's Stable Now
Reactivity
effect,linkedSignal,toSignalare now stable APIs.incremental hydrationandroute-level rendering mode confighave also reached stable status.
🧪 New but Still Unstable (Developer Preview / Experimental)
Zoneless (Developer Preview)
- Promoted to Developer Preview.
- Default error handlers for SSR (
unhandledRejection,uncaughtException). - CLI now lets you create a project without Zone.js.
Reactive Resources (Experimental)
resourceAPI to trigger async operations from signals.streamingResourcefor working with WebSocket streams.httpResourcewrapsHttpClientin a reactive, signal-based API.
Vitest Support (Experimental)
- Alternative to Karma with watch mode and jsdom support.
✨ Brand New Features
Angular + AI
llms.txtfile to help LLMs generate up-to-date Angular code.- Guides and demos for building AI-powered apps using Genkit and Vertex AI.
Official Angular Mascot
- RFC opened for the official Angular mascot — voting and suggestions welcome.
🛠 Improvements
Developer Experience
- Angular DevTools now shows
@deferblocks, hydration state, and zones. - Chrome DevTools integration in the Performance tab.
- Better template diagnostics: missing
trackFncalls,??misuse, missing imports, etc.
createComponent Enhancements
- Support for
bindings,directives, andtwo-way binding. - Apply directives and bindings declaratively at component creation.
Template Syntax
- Support for
**(exponentiation),inoperator, and untagged template literals.
Host Bindings
- Full type-checking and language service support for the
hostobject. - New
typeCheckHostBindingsflag intsconfig.json.
Updated Style Guide
- Suffixes like
Component,Service,Pipeare now optional. - Simplified structure and removed boilerplate.
- Moved non-Angular specific practices to documentation.
⚠️ Deprecated and Should Be Avoided
Structural Directives
*ngIf,*ngFor, and*ngSwitchare now deprecated. New control flow syntax@if,@for,@switchis preferred. Migration command:ng generate @angular/core:control-flow
🌟 My Personal Favorites
Zoneless (Developer Preview)
I've often run into issues with Zone.js—from odd side effects during state updates to unpredictable behavior due to monkey-patching. On the server, it's even worse, causing memory leaks in Node.js and hard-to-trace crashes.
Now, you can bootstrap your app without Zone.js using:
bootstrapApplication(AppComponent, {
providers: [
provideZonelessChangeDetection(),
provideBrowserGlobalErrorListeners()
]
});Just make sure to remove the zone.js polyfill from angular.json. This greatly simplifies debugging and SSR stability.
createComponent API
Creating dynamic components used to be verbose. Now, it’s all declarative:
createComponent(MyDialog, {
bindings: [
inputBinding('canClose', signal(true)),
outputBinding('onClose', (result) => console.log(result)),
twoWayBinding('title', signal('Dialog Title'))
],
directives: [FocusTrap]
});This is a major improvement, especially for UI library authors. It unlocks powerful use cases. It is like host directives, but in runtime and dynamic.
Host Bindings
@HostBinding and @HostListener were convenient, but the main problem for me was that they don't work with signals and Observables. Now you can express this clearly in the host object with full editor support:
@Component({
host: {
'[class.active]': 'isActive()',
'(click)': 'handleClick()',
}
})And now with typeCheckHostBindings enabled:
{
"angularCompilerOptions": {
"typeCheckHostBindings": true
}
}You get type safety and better DX.
Deprecation of *ngIf, *ngFor, *ngSwitch
This was long overdue. The new control flow syntax is simpler, closer to JavaScript, and removes the need to import CommonModule.
Migration is easy:
ng generate @angular/core:control-flowFrom this:
<div *ngIf="user">{{ user.name }}</div>To this:
@if (user) {
<div>{{ user.name }}</div>
}Cleaner, more readable, fewer surprises.
🧾 Final Thoughts
This was a solid release. Of course, as developers, we always wish new features were stabilized faster and shipped more frequently — but that doesn't make us any less excited for the next major in six months or the RFCs in between.
Meanwhile, minor releases might still bring exciting updates. And yes, we’re looking at you, signal-based forms ✌️
🟢 Course updates on ng.guide will go live as soon as Nx 20 adds support for Angular 20.
🎁 Pre-order now — "Angular UI Kit"
We’re launching our first interactive course on ng.guide, where you'll build a production-grade UI library using real-world Angular practices.
- Fully interactive lessons
- Real components and examples
- One-click Stackblitz integration
💸 What it costs today — including whatever offer is running, quoted from the catalogue the checkout charges from.
Reserve your access now and get hands-on with how Angular works at scale.
