Everything

All editions on a single page to make it easier to find things in lieu of a proper search. You can also browse previous editions by month in the archive.

🎅🏻 December 2025

Shotgun parsing is a programming antipattern whereby parsing and input-validating code is mixed with and spread across processing code. […] Shotgun parsing necessarily deprives the program of the ability to reject invalid input instead of processing it.

Notable releases:

🚴‍♂️ November 2025

Notable releases:

🎃 October 2025

The only “trick” is that this preparation seems so boring, so impossibly tedious, that when we see the effect we can’t imagine that anyone would do something so tedious just for this simple effect. […] I often have people newer to the tech industry ask me for secrets to success. There aren’t many, really, but this secret—being willing to do something so terrifically tedious that it appears to be magic—works in tech too.

Notable releases:

💨 September 2025

In light of the recent supply-chain attacks in the NPM and Node world (this one and that one), we’re starting with some food for thought about protecting ourselves from malicious dependencies. Obsidian’s philosophy of Less is safer is the best collection of measures to mitigate the risk of successful supply-chain attacks I’ve seen so far. In short:

This sounds reasonable to me. Yet it’s also quite different from our current practice of mostly immediate, mostly automated updates. Interested in hearing your thoughts 🧠

It can also be tricky to avoid dependencies. In Norms, for example, we have very few client-side dependencies. But our toolchain for linting, formatting, and testing is pretty complex. I don’t see how we can reduce that by much without compromising code quality and consistency. This is one of the reasons I’m excited about Vite+, the Vite team’s attempt at replacing the zoo of linters, formatters, test runners, etc. with a unified toolchain. We’ll learn more at this year’s ViteConf!


⛵️ August 2025

It’s clear that CSS is no longer “just” a styling language. It has made a fundamental shift in direction, taking on a larger role when it comes to layouts, motion, compatibility, and of course, accessibility. This shift helps redefine CSS’s identity not as a legacy styling language, but as a modern, expressive toolset that is finally getting the recognition it deserves.

🌞 July 2025

Near as I can tell, the schedule of React Summit mirrors the content of other recent and pending React conferences in that these are not engineering conferences; they are marketing events. […] Conferences crystallise consensus about which problems matter, and React Summit succeeded in projecting a clear perspective—namely that it’s time to party like it’s 2013.

Notable releases:

🏝️ June 2025

Notable releases:

🌳 May 2025

The issue is the tradeoffs involved in making it work. It leaks into, or even demands control over layers that are previously not in scope for client-side frameworks. This creates heavy complexity […] React team made a bet that they can work with Next team to polish the DX to the extent that the benefit would essentially be free […]. IMO, that bet has failed.

🐰 April 2025

Starting with insights from the State of Vue 2025 report: beyond the usual popularity surveys (Vue continues to thrive) the report includes case studies, core team interviews, and some stats I hadn’t seen before:


Other things that caught my attention:

🪻 March 2025

🤧 February 2025

Since I wasn’t in the mood to read a lot of newsletters I wanted to share something else I’ve been tinkering with: finding a good setup for programming Java that doesn’t suck rely on IntelliJ 😇

As we touched on this topic at the Delivery Offsite last year I thought this might be interesting to some of you. If it’s not relevant for you, you might still find some of the tools I mention valuable for other things.

Enjoy! And feel free to leave feedback if you found this helpful. 😊


First, if you’re happy with IntelliJ, great! This might not be for you, and I’m not trying to convince you otherwise. But I prefer to work in a specific way and am apparently too set in my ways to change:

For frontend development, this means using VS Code for editing and a terminal with various CLIs for everything else (running tests, version control, …). This approach is common in the frontend world. However, in the Java ecosystem, IntelliJ seems the default choice. Other options are less obvious. After some experimentation though, here’s my setup:

☃️ January 2025

Since it’s still the beginning of the year—and I’m a New Year’s resolutions person—I wanted to start with a reflection. Over the past few years, and especially in 2024, the web platform has evolved dramatically. CSS, in particular, feels almost unrecognizable compared to not so long ago. Features that once required tons of code or additional build tools are now built right into the platform, often as simple one-liners: dialogs, popovers, previously impossible transitions, CSS nesting, and so much more.

To me, this is the perfect time to strip away some of the many layers of abstraction we’ve accumulated—complex build setups, frameworks, and libraries—and get closer to the metal of the web platform again. I want to write simpler, more resilient code and focus on knowledge that remains broadly applicable. That includes a renewed interest in Svelte, which, despite being a compiled framework, aligns closely with the spirit of the web. I also want to dive deeper into new APIs like Temporal and techniques like view transitions.

Because as someone said at a conference I attended last year:

Frameworks come and go, but the web platform and its APIs are knowledge you can rely on for decades.


🎄 December 2024

🍄‍🟫 November 2024

🍁 October 2024