Skip to content

Commit 19ea26c

Browse files
mgechevpkozlowski-opensource
authored andcommitted
docs: update the roadmap to reflect latest work (#55979)
PR Close #55979
1 parent 85c1719 commit 19ea26c

File tree

1 file changed

+66
-42
lines changed

1 file changed

+66
-42
lines changed

adev/src/content/reference/roadmap.md

Lines changed: 66 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -17,47 +17,48 @@ Continue reading to learn how we plan to deliver these objectives with specific
1717

1818
Start developing with the latest Angular features from our roadmap. This list represents the current status of new features from our roadmap:
1919

20-
| Ready to experiment with | Production ready |
21-
| :---------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- |
22-
| [Explore Angular Signals](guide/signals) | [Migrate your Angular Material to MDC](https://material.angular.io/guide/mdc-migration) |
23-
| [Learn about Hydration](guide/hydration) | [Migrate to Standalone APIs](reference/migrations/standalone) |
24-
| [Deferrable views](https://github.com/angular/angular/discussions/50716) | [Improve image performance with NgOptimizedImage](guide/image-optimization) |
25-
| [Built-in control flow](https://github.com/angular/angular/discussions/50719) | [Try out Inject](/tutorials/learn-angular/20-inject-based-di) |
26-
| | [New CDK directives](https://material.angular.io/cdk/categories) |
20+
### Available to experiment with
21+
22+
* [Explore Angular Signals](guide/signals)
23+
* [Event replay with SSR](https://angular.dev/api/platform-browser/withEventReplay)
24+
* [Zoneless change detection](https://angular.dev/guide/experimental/zoneless)
25+
* [Hydration support for i18n blocks](https://angular.dev/api/platform-browser/withI18nSupport)
26+
27+
### Production ready
28+
29+
* [Hydration](guide/hydration)
30+
* [Deferrable views](https://angular.dev/guide/defer)
31+
* [Built-in control flow](https://angular.dev/guide/templates/control-flow)
32+
* [Migrate your Angular Material to MDC](https://material.angular.io/guide/mdc-migration)
33+
* [Angular Material 3](https://material.angular.io/guide/theming)
34+
* [Migrate to Standalone APIs](reference/migrations/standalone)
35+
* [Improve image performance with NgOptimizedImage](guide/image-optimization)
36+
* [Try out Inject](/tutorials/learn-angular/20-inject-based-di)
37+
* [New CDK directives](https://material.angular.io/cdk/categories)
2738

2839
## Improving the Angular developer experience
2940

30-
### Improve runtime performance and make Zone.js optional
41+
### Developer velocity
3142

3243
<docs-card-container>
3344
<docs-card title="Deliver Angular Signals" href="https://github.com/angular/angular/discussions/49685">
34-
This project rethinks the Angular reactivity model by introducing Signals as a reactivity primitive. Fully implemented, the project will make Zone.js optional. The initial planning resulted in hundreds of discussions, conversations with developers, feedback sessions, user experience studies, and a series of RFCs, which received over 1,000 comments.
45+
This project rethinks the Angular reactivity model by introducing Signals as a reactivity primitive. The initial planning resulted in hundreds of discussions, conversations with developers, feedback sessions, user experience studies, and a series of RFCs, which received over 1,000 comments.
3546

36-
As part of the v17 release, we graduated the Angular Signals library from developer preview. Next well continue implementing the proposals from the RFC. The first steps will be introducing signal-based inputs and queries.
47+
As part of the v17 release, we graduated the Angular Signals library from developer preview. In v18 you can now use signal-based queries, inputs, and model inputs in developer preview. Next we'll continue addressing community feedback before graduating these APIs to stable and integrate signals deeper in Angular's change detection mechanism.
3748
</docs-card>
38-
</docs-card-container>
49+
<docs-card title="Zoneless Angular" href="">
50+
In v18 we shipped experimental zoneless support in Angular. It enables developers to use the framework without including zone.js in their bundle, which improves performance, debugging experience, and interoperability. As part of the initial release we also introduced zoneless support to the Angular CDK and Angular Material.
3951

40-
### Make Angular easier to learn
41-
42-
<docs-card-container>
43-
<docs-card title="Make Angular.dev the official home for Angular developers" href="https://goo.gle/angular-dot-dev">
44-
Angular.dev will be the new site, domain and home for Angular development. The new site contains updated documentation, tutorials and guidance that will help developers build with Angular’s latest features. v17’s launch includes new and revised documentation on Angular’s core features, tutorials and reference materials. In the coming months, we will continue to collect feedback and improve the site, with a ton of enhancements planned.
45-
46-
In v18, after collecting feedback and continuing to stabilize Angular.dev, we plan to make Angular.dev the official home for all Angular development.
52+
As the next step, we'll continue iterating on the API to improve developer experience.
4753
</docs-card>
48-
<docs-card title="Introduce built-in control flow" href="https://github.com/angular/angular/discussions/50719">
49-
In v17 we shipped a developer preview version of a new control flow. It brings significant performance improvements and better ergonomics for template authoring. We also provided a migration of existing `*ngIf`, `*ngFor`, and `*ngSwitch` which you can run to move your project to the new implementation. As the next steps we'll be working on addressing community feedback before officially completing this project and graduating it from developer preview.
54+
<docs-card title="Local template variables" href="https://github.com/angular/angular/issues/15280">
55+
Local template variables is one of the most upvoted features in the Angular issue tracker. In Q2 2024 we started initial design and prototyping. Expect updates later in 2024.
5056
</docs-card>
5157
</docs-card-container>
5258

5359
### Improve Angular Material and the CDK
5460

5561
<docs-card-container>
56-
<docs-card title="Expand the customizability of Angular Material" href="">
57-
To provide better customization of our Angular Material components and enable Material 3 capabilities, we'll be collaborating with Google's Material Design team on defining token-based theming APIs.
58-
59-
As of Q4 2023, we're refactoring components to use the new API, finalizing the comprehensive set of tokens, and updating the Sass API based on the new tokens.
60-
</docs-card>
6162
<docs-card title="New CDK primitives" href="">
6263
We are working on new CDK primitives to facilitate creating custom components based on the WAI-ARIA design patterns for [Combobox](https://www.w3.org/TR/wai-aria-practices-1.1/#combobox). Angular v14 introduced stable [menu and dialog primitives](https://material.angular.io/cdk/categories) as part of this project, and in v15 Listbox.
6364
</docs-card>
@@ -70,13 +71,9 @@ Start developing with the latest Angular features from our roadmap. This list re
7071

7172
<docs-card-container>
7273
<docs-card title="Modernize unit testing tooling with ng test" href="">
73-
In v12, we revisited the Angular end-to-end testing experience by replacing Protractor with modern alternatives such as Cypress, Nightwatch, and Webdriver.io. Next, we'd like to tackle `ng test` to modernize Angular's unit testing experience. In Q2, we introduced experimental [Jest](https://jestjs.io/) support and [announced](https://blog.angular.io/moving-angular-cli-to-jest-and-web-test-runner-ef85ef69ceca) the transition from Karma to the [Web Test Runner](https://modern-web.dev/docs/test-runner/overview/).
74-
</docs-card>
75-
<docs-card title="iframe support in Angular DevTools" href="">
76-
We are working on making it possible to debug and profile Angular apps embedded within an iframe on the page. This feature will allow you to select an iframe and inspect it directly within Angular DevTools.
77-
</docs-card>
78-
<docs-card title="Automation for transition of existing hybrid rendering projects to esbuild and vite" href="tools/cli/esbuild">
79-
In v17 we shipped a vite and esbuild-based application builder and enabled it for new projects by default. It improves build time for projects using hybrid rendering with up to 87%. Next, we'll be working on developing schematics that migrate existing projects using hybrid rendering to the new build pipeline.
74+
In v12, we revisited the Angular end-to-end testing experience by replacing Protractor with modern alternatives such as Cypress, Nightwatch, and Webdriver.io. Next, we'd like to tackle `ng test` to modernize Angular's unit testing experience. In Q2 2023, we introduced experimental [Jest](https://jestjs.io/) support and [announced](https://blog.angular.io/moving-angular-cli-to-jest-and-web-test-runner-ef85ef69ceca) the transition from Karma to the [Web Test Runner](https://modern-web.dev/docs/test-runner/overview/).
75+
76+
Later this year we'll continue making progress towards introducing Web Test Runner as the replacement of Karma.
8077
</docs-card>
8178
<docs-card title="Streamline standalone imports with Language Service" href="">
8279
As part of this initiative, the language service automatically imports components and pipes in standalone and NgModule-based apps. Additionally, to enable smaller app bundles, we'll work on allowing the language service to propose the automatic removal of unused imports.
@@ -86,11 +83,18 @@ Start developing with the latest Angular features from our roadmap. This list re
8683
## Fast by default
8784

8885
<docs-card-container>
89-
<docs-card title="Enabling hybrid rendering by default (SSR and SSG)" href="">
90-
We are working on more developer experience improvements which will allow us to enable hybrid (server-side rendering and static site generation) rendering by default for new projects. In particular, we're focused on route-level rendering strategy configuration and improving developer experience for i18n support.
86+
<docs-card title="Exploration of partial hydration" href="">
87+
In v17 we graduated hydration from developer preview and we've been consistently observing 40-50% improvements in LCP. Since then we started prototyping partial hydration and shared a demo on stage at ng-conf. Expect an experimental support in 2024.
88+
</docs-card>
89+
<docs-card title="Event replay with SSR and prerendering" href="https://angular.dev/api/platform-browser/withEventReplay">
90+
In v18 we introduced an event replay functionality when using server-side rendering or prerendering. For this feature we depend on the event dispatch primitive (previously known as jsaction) that is running on Google.com.
91+
92+
Over the next couple of months we'll be collecting feedback from the community for this feature and work towards graduating it to stable.
9193
</docs-card>
92-
<docs-card title="Introduce deferred loading" href="https://github.com/angular/angular/discussions/50716">
93-
In v17 we shipped deferrable views in developer preview, which provide an ergonomic API for deferred code loading. As the next step we'll be iterating on community feedback before officially making this feature stable.
94+
<docs-card title="Server route configuration" href="">
95+
We're working towards enabling a more ergonomic route configuration on the server. We want to make it trivial to declare which routes should be server-side rendered, prerendered or client-side rendered.
96+
97+
As of right now, we're in early design and prototyping phase. Expect updates later in 2024.
9498
</docs-card>
9599
</docs-card-container>
96100

@@ -103,30 +107,50 @@ This section represents explorations and prototyping of potential future project
103107
With the evolution of Signals in Angular, we'll be also working on a better tooling for debugging them. High on the priority list is a UI for inspecting and debugging Signal-based components.
104108
</docs-card>
105109
<docs-card title="Improve HMR (Hot Module Reload)" href="https://github.com/angular/angular/issues/39367#issuecomment-1439537306">
106-
Angular CLI currently supports HMR via `ng serve --hmr`. Under the hood, this mostly rerenders the Angular application from scratch, which is better than a full page reload, but can definitely be improved. Most importantly, our strategy here should be to optimize the turnaround time for any given change scaled with the frequency of that kind of change. In the future, our team will explore a number of opportunities for improving HMR, including:
110+
Angular CLI currently supports HMR via `ng serve --hmr`. Under the hood, this mostly rerenders the Angular application from scratch, which is better than a full page reload, but can definitely be improved. Most importantly, our strategy here should be to optimize the turnaround time for any given change scaled with the frequency of that kind of change. In the future, our team will explore a number of opportunities for improving HMR, including:
107111

108112
- Fast track CSS-only changes and apply them to any existing components on the page.
109113
- Fast track Angular template-only changes and apply them to any existing components on the page.
110114
</docs-card>
111115
<docs-card title="Exploration of streamed server-side rendering" href="">
112116
Over the past few releases we've been working on making Angular's server-side rendering story more robust. On our priority list is to explore streamed server-side rendering for zoneless application.
113117
</docs-card>
114-
<docs-card title="Exploration of partial hydration" href="">
115-
In v17 we graduated hydration from developer preview and we've been consistently observing 40-50% improvements in LCP. As the next step, we'll explore how we can partially hydrate applications using deferrable views.
116-
117-
As part of this effort, we'll be also evaluating the trade-offs of more fine-grained hydration and resumability. We'll share updates as we progress.
118-
</docs-card>
119118
<docs-card title="Investigation for authoring format improvements" href="">
120119
Based on our developer surveys' results we saw there are opportunities for improving the ergonomics of the component authoring format. The first step of the process will be to gather requirements and understand the problem space in advanced to an RFC. We'll share updates as we make progress. High priority in the future work will be backward compatibility and interoperability.
121120
</docs-card>
122121
<docs-card title="Support two-dimensional drag-and-drop" href="https://github.com/angular/components/issues/13372">
123122
As part of this project, we'd like to implement mixed orientation support for the Angular CDK drag and drop. This is one of the repository's most highly requested features.
124123
</docs-card>
124+
<docs-card title="Evaluating Nitro support in the Angular CLI" href="https://nitro.unjs.io/">
125+
We're excited about the set of features that Nitro offers such as portability, minimal design, and file-based routing. Later this year we'll evaluate how it fits in the Angular server-side rendering model.
126+
127+
We'll share updates as we make progress in this investigation.
128+
</docs-card>
125129
</docs-card-container>
126130

127131
## Completed projects
128132

129133
<docs-card-container>
134+
<docs-card title="Expand the customizability of Angular Material" link="Completed in Q2 2024" href="https://material.angular.io/guide/theming">
135+
To provide better customization of our Angular Material components and enable Material 3 capabilities, we'll be collaborating with Google's Material Design team on defining token-based theming APIs.
136+
137+
In v17.2 we shared experimental support for Angular Material 3 and in v18 we graduated it to stable.
138+
</docs-card>
139+
<docs-card title="Introduce deferred loading" link="Completed in Q2 2024" href="https://next.angular.dev/guide/defer">
140+
In v17 we shipped deferrable views in developer preview, which provide an ergonomic API for deferred code loading. In v18 we enabled deferrable views for library developers and graduated the API to stable.
141+
</docs-card>
142+
<docs-card title="iframe support in Angular DevTools" link="Completed in Q2 2024" href="">
143+
We enabled debugging and profiling of Angular apps embedded within an iframe on the page.
144+
</docs-card>
145+
<docs-card title="Automation for transition of existing hybrid rendering projects to esbuild and vite" link="Completed in Q2 2024" href="tools/cli/esbuild">
146+
In v17 we shipped a vite and esbuild-based application builder and enabled it for new projects by default. It improves build time for projects using hybrid rendering with up to 87%. As part of v18 we shipped schematics and a guide that migrate existing projects using hybrid rendering to the new build pipeline.
147+
</docs-card>
148+
<docs-card title="Make Angular.dev the official home for Angular developers" link="Completed in Q2 2024" href="https://goo.gle/angular-dot-dev">
149+
Angular.dev is the new site, domain and home for Angular development. The new site contains updated documentation, tutorials and guidance that will help developers build with Angular’s latest features.
150+
</docs-card>
151+
<docs-card title="Introduce built-in control flow" link="Completed in Q2 2024" href="https://next.angular.dev/essentials/conditionals-and-loops">
152+
In v17 we shipped a developer preview version of a new control flow. It brings significant performance improvements and better ergonomics for template authoring. We also provided a migration of existing `*ngIf`, `*ngFor`, and `*ngSwitch` which you can run to move your project to the new implementation. As of v18 the built-in control flow is now stable.
153+
</docs-card>
130154
<docs-card title="Modernize getting started tutorial" link="Completed Q4 2023" href="">
131155
Over the past two quarters, we developed a new [video](https://www.youtube.com/watch?v=xAT0lHYhHMY&list=PL1w1q3fL4pmj9k1FrJ3Pe91EPub2_h4jF) and [textual](https://angular.dev/tutorials/learn-angular) tutorial based on standalone components.
132156
</docs-card>

0 commit comments

Comments
 (0)