This week is a good one if you enjoy seeing long-standing defaults finally questioned. Angular 21 lands with zoneless change detection, Signal-powered forms, and new AI tooling, while there are thoughtful posts on what counts as “just JavaScript”, when not to reach for useTransition, and how to move a mature codebase from Enzyme to React Testing Library. On the data and perf side, TanStack DB edges towards 1.0 with query-driven sync and differential updates, and there is a neat look at using the Speculation Rules API to get instant loads by prerendering pages in invisible tabs, trading a bit more RAM for much snappier navigations.
In HTML and CSS land, subgrid finally gets the deep dive it deserves, joined by experiments that treat CSS as a proper programming environment, from multi-stage timetables with grids, round and mod through to layered 3D image effects, “two-phase” view transitions, and a long-running saga over what we are even calling masonry layouts. There are also sharp takes on when numeric inputs are the wrong choice, tooltip UX that probably should not exist, and a font licensing detective story that feels more like true crime than front-end.
Mixed news rounds things off with Cloudflare’s outage write-up and rapid response, reflections on what day-to-day development looks like in the AI era, and a fresh reminder that npm supply chain attacks are not slowing down. Plenty to read, tinker with, and worry about, in the best possible way. Happy reading!
I believe Angular devs are super excited about this one! Some of the updates:
https://blog.angular.dev/announcing-angular-v21-57946c34f14b
Excellent post on what is and isn't “just JavaScript”.
https://pedrocattori.com/posts/just-javascript/
Interesting observation on useTransition in React.
https://www.charpeni.com/blog/dont-blindly-use-usetransition-everywhere
https://product.hubspot.com/blog/migrated-from-enzyme-to-react-testing-library
https://tkdodo.eu/blog/omit-for-discriminated-unions-in-type-script
“Query-Driven Sync (0.5) completes the core vision: intelligent loading that adapts to your queries, instant client-side updates via differential dataflow, and seamless persistence back to your backend. We're targeting 1.0 for December 2025, focusing on API stability and comprehensive docs.”
https://tanstack.com/blog/tanstack-db-0.5-query-driven-sync
Interesting concept about those speculation rules API, however, my worry is that in the end it will eat more RAM than my second personal computer.
https://blog.sentry.io/less-than-100ms-e-commerce-instant-loads-with-speculation-rules-api/
Another great tool that uses your browser to convert any image to any format.
As usual, Josh Comeau puts so much effort into creating a post full of examples and step-by-step guides that even if you have never used subgrid before, you will get the idea after reading it.
https://www.joshwcomeau.com/css/subgrid/
Some good points in the post, but if you replace tooltips with titles, will that really fix the issue? Still, totally agree that not all users will use a mouse.
https://tkdodo.eu/blog/tooltip-components-should-not-exist
Basically, this post is solid proof that CSS is a full-scale programming language 🙂 A modern approach using grids, subgrids, round(), mod(), and loads of calculations
https://frontendmasters.com/blog/more-css-random-learning-through-experiments/
More importantly, when NOT to use the input number and choose inputmode="numeric" .
https://olliewilliams.xyz/blog/guide-to-html-number-input/
I guess some companies would rather pay money than research and figure out the issue, since the number of people and hours involved to determine which fonts were used where and which licenses were obtained is real detective work.
https://www.insanityworks.org/randomtangent/2025/11/14/monotype-font-licencing-shake-down
The post explores a layered pattern for building 3D effects, using CSS perspective and transform properties to create 3D objects. Clean CSS.
https://frontendmasters.com/blog/how-to-create-3d-images-in-css-with-the-layered-pattern/
I wonder if the naming of the Masonry is the longest event in CSS history 🙂 Anyway, after long discussions, it seems that the name is display: grid-lanes
https://github.com/w3c/csswg-drafts/issues/12022
The post explains how to compare literal numeric values in CSS and, for example, change colour based on lightness.
1 | |
2 | |
3 | |
4 | |
https://css-tricks.com/the-range-syntax-has-come-to-container-style-queries-and-if/
Also, an amazing post by Una Kravets shows how to change the card design based on the rain percentage. Sounds crazy, right? 🙂
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
https://una.im/range-style-queries
What matters is how you manage issues and communicate. I trust Cloudflare did a good job on this one, and CEO Matthew Prince responded within less than 24 hours, explaining everything in detail.
https://blog.cloudflare.com/18-november-2025-outage/
https://davegriffith.substack.com/p/software-development-in-the-time