Code example showing the usage of Temporal.ZoneddateTime
```js
// London DST starts: 2026-03-29 01:00 -> 02:00
const zdt = Temporal.ZonedDateTime.from(
"2026-03-29T00:30:00+00:00[Europe/London]",
);
console.log(zdt.toString());
// → "2026-03-29T00:30:00+00:00[Europe/London]"
const plus1h = zdt.add({ hours: 1 });
console.log(plus1h.toString());
// "2026-03-29T02:30:00+01:00[Europe/London]" (01:30 doesn't exist)
```
Temporal is now Stage 4 at TC39 🎂🎂🎂
Thanks to all the other champions of JavaScript's new date-time API. It has been a wild ride over many years!
I wrote a blog post explaining how we got here 📜
bloomberg.github.io/js-blog/post...
11.03.2026 15:21
👍 334
🔁 81
💬 20
📌 15
Interesting. It seems like there's a selector for everything but the `state`, thought it can probably be created as well.
An issue we had with the `state` is that it *must* be passed for every navigation, otherwise it's deleted by the Router. Kind of annoying.
01.02.2026 15:10
👍 0
🔁 0
💬 0
📌 0
We also tried with a custom LocationStrategy. In that case the `id` is saved in the `history.state` upon navigation.
It works but it affects every route in the app, not just the `/books` sub-tree. Maybe it can be modified further to only "affect" a specific route.
01.02.2026 14:59
👍 0
🔁 0
💬 0
📌 0
It's a client requirement because of GDPR. In the example I mention `book-id` but in the projects it's another `id` which is more sensitive. So it must not be part of the URL (and the browser's history).
01.02.2026 14:25
👍 1
🔁 0
💬 1
📌 0
Hey @angular.dev I need your help. 🙏
I have the following URL structure and want to remove <book-id> from it BUT keep the "deep-links" - I should still be able to access `/book/<book-id>` without exposing the `<book-id>` in the URL. Do you have any suggestion?
#angular
29.01.2026 20:01
👍 2
🔁 2
💬 3
📌 0
The refresh part is a requirement too, sadly.
We looked at `state` too but couldn't solve the major use-cases (e.g. sub-route navigation, refresh, etc) without throwing some `sessionStorage` in. So it kind of diminishes its purpose.
29.01.2026 21:03
👍 1
🔁 0
💬 1
📌 0
What we have until now is using `sessionStorage` or creating a custom `LocationStrategy`. What else can be used?
29.01.2026 20:01
👍 0
🔁 0
💬 0
📌 0
Hey @angular.dev I need your help. 🙏
I have the following URL structure and want to remove <book-id> from it BUT keep the "deep-links" - I should still be able to access `/book/<book-id>` without exposing the `<book-id>` in the URL. Do you have any suggestion?
#angular
29.01.2026 20:01
👍 2
🔁 2
💬 3
📌 0
Congrats 🎉. Thanks for all your work on Angular. All the best in the future.
29.01.2026 16:44
👍 1
🔁 0
💬 0
📌 0
Wow, wow, wow 🎉🚀
28.01.2026 16:15
👍 1
🔁 0
💬 0
📌 0
Accessibility For Everyone by Laura Kalbag
Read the book online for free.
My book, Accessibility For Everyone, is now free and online as a website.
accessibilityforeveryone.site
The book was first published by A Book Apart in 2017 but it holds up! It covers web accessibility for designers, developers, content folks, and really everyone who works in tech.
27.01.2026 13:14
👍 309
🔁 195
💬 9
📌 10
Headline: Developer Tool State Management Visualization
Main Container: A dark-mode interface showing a logic flow. A central resource block titled myRsrc is highlighted with a gold border.
Internal Flow: Inside the resource, an extRequest node (red) feeds into loadEffect (purple), state (red), and stream (blue). These converge into green terminal nodes: status (showing "resolved"), value (showing "next_val"), and isLoading (showing "false").
External Context: Above the resource is a parent node rsrcParam with the string "rsrc_param". To the left, unrelated nodes for zippy and counter are visible.
Inspector Window: A small UI overlay in the bottom right summarizes the "myRsrc" state, confirming the type is resource, the status is resolved, and the current value is "next_val".
Debugging just got a major upgrade. We’ve officially launched Resource Visualization in Angular DevTools. Now you can gain even deeper insights into your app's lifecycle and dependencies directly in your browser.
See it in action and check out the details here: github.com/angular/angu...
26.01.2026 17:00
👍 14
🔁 5
💬 0
📌 0
A code snippet demonstrating the use of the JavaScript spread operator within Angular's @let syntax. The code defines a baseModel object, then creates an upgradedModel using {...baseModel} to inherit properties like make, model, and year, while adding a new "radio" property. The HTML below outputs both lists to show the merged data.
Code snippet:
@let baseModel = { make: 'Best Cars', model: 'ng-21', year: 2026 };
@let upgradedModel = {...baseModel, radio: 'Premium Sound System' };
<p>Base Model Details:</p>
<ul>
<li>Make: {{ baseModel.make }}</li>
<li>Model: {{ baseModel.model }}</li>
<li>Year: {{ baseModel.year }}</li>
</ul>
<p>Upgraded Model Details:</p>
<ul>
<li>Make: {{ upgradedModel.make }}</li>
<li>Model: {{ upgradedModel.model }}</li>
<li>Year: {{ upgradedModel.year }}</li>
<li>Radio: {{ upgradedModel.radio }}</li>
</ul>
Spread syntax in Angular templates! Use the ... operator in:
▶️ Object literals: {a: 1, ...foo}
▶️ Array literals: [1, ...foo]
▶️ Function calls: fn(1, ...foo)
It’s powered by Angular’s "pure function" system, ensuring objects aren't re-created unless data changes. Keep it clean, keep it fast! 🚀
22.01.2026 17:00
👍 15
🔁 4
💬 0
📌 0
Angular 21.1 is officially here! 🚀
This update brings: ✅ Multi-case @switch matching ✅ Spread syntax in templates ✅ isActive() Signals for routing ✅ Updated [formField] for Signal Forms
Upgrade now: ng update @angular/core @angular/cli and tell us your favorite new feature! 🛠️
21.01.2026 18:00
👍 14
🔁 2
💬 1
📌 1
So you're saying:
1. Master the "Rules"
("You know the rules and so do I.")
2. High-Intent Focus
("A full commitment's what I'm thinking of.")
3. Transparency & Reporting
("I just wanna tell you how I'm feeling / Gotta make you understand.")
... and many more 😂😂
21.01.2026 17:35
👍 0
🔁 0
💬 0
📌 0
🚀 What's new in #Angular v21.1? ✨
✅ ... spread operator in templates
🚦 trailing slash router config
✨ Experimental Navigation API
🚀 Signal Forms renaming and new features
Our detailed blog post is live 👉 blog.ninja-squad.com/2026/01/15/w...
15.01.2026 13:48
👍 10
🔁 7
💬 0
📌 0
The Navigation API is newly baseline! The web now has sensible, low-level routing for navigations.
15.01.2026 15:25
👍 164
🔁 29
💬 9
📌 5
CSS anchor positioning is newly baseline! This opens the door for lots of new creative CSS.
It's a huge feature, but here are the basics.
13.01.2026 16:09
👍 209
🔁 39
💬 9
📌 11
dzhavat.github.io/feed.xml
07.01.2026 12:52
👍 0
🔁 0
💬 0
📌 0
I wish you all the best. Hopefully 45 days will not feel that long.
01.01.2026 14:52
👍 1
🔁 0
💬 0
📌 0
Happy new year! 🎉
Let's start the year with a short run 🏃♂️
Progress is made in small steps 😊
01.01.2026 10:36
👍 4
🔁 0
💬 1
📌 0
Announcing NgRx 21: Celebrating a 10 Year Journey with a fresh new look and @ngrx/signals/events
Announcing NgRx 21: Celebrating a 10 Year Journey with a fresh new look and @ngrx/signals/events
📢 Announcing NgRx 21: Celebrating a 10 Year Journey with a fresh new look and ngrx/signals/events
🎊 10 Year Anniversary
🎨 New Documentation Website
⚓ Stable Events Plugin
And more!
✍️ by @timdeschryver.dev
dev.to/ngrx/announc...
22.12.2025 16:38
👍 14
🔁 8
💬 0
📌 3
Latest status 😃 It was a config issue. After upgrading Vitest to latest I still got the errors. But then removed a suspicious config setting... and it works now :)
17.12.2025 21:06
👍 2
🔁 0
💬 1
📌 0
HTML invoker commands are newly baseline! Here's how they work…
17.12.2025 15:58
👍 147
🔁 27
💬 6
📌 5
So far everything works in the ATL repo. I guess I'll first need to upgrade my project to later versions of dependencies. Am still on Angular v20 and Vitest v2 😬 Upgrade might fix it.
16.12.2025 21:53
👍 1
🔁 0
💬 1
📌 0
Will try to make a repro. Though the current example apps in the repo are based on Jest/Karma. My issue occurs in Vitest. Will probably need to use the current PR as a playground :)
16.12.2025 20:41
👍 0
🔁 0
💬 1
📌 0
Hey @timdeschryver.dev Do you happen to have an ATL example of a spec that tests a component that uses an `effect`? I get some error saying that required input is not defined 🤔
16.12.2025 17:34
👍 0
🔁 0
💬 1
📌 0