The Weekly Dev's Brew #22 ☕

The Weekly Dev's Brew #22 ☕

Sipping the bitter truth of web development, one framework release at a time

Main Story: Nuxt 4.0 Drops Like a Perfect Pour-Over

Well, well, well. Good things come to those who wait – and after a year of the Nuxt team letting us beta test their compatibilityVersion: 4 flag like unpaid QA engineerspatient early adopters, Nuxt 4.0 officially landed on July 15th. And you know what? It's actually... thoughtful. Revolutionary? No. But revolutionary is overrated when you just want your file watcher to stop having existential crises on Windows.

The headline feature is the new app/ directory structure, which is basically Nuxt admitting that dumping everything in your project root was about as organized as a startup's technical debt. Now your application code lives in app/ like a civilized framework, while server code chills in server/ where it belongs.

But here's where it gets actually interesting: TypeScript just got serious. We're talking separate TypeScript projects for different contexts—.nuxt/tsconfig.app.json for your components, .nuxt/tsconfig.server.json for server-side code. Your IDE will finally stop suggesting document.getElementById in your API routes like some kind of confused intern. The performance gains from TypeScript project references? Actually measurable this time.

The data fetching overhaul brings singleton behavior where multiple useAsyncData calls with the same key actually share reactive refs. Shocking concept: not duplicating API calls when you don't need to. They've also gone shallow by default on reactivity because apparently deep reactivity on every object was overkill – who could have seen that coming?

Breaking changes? They exist, but the migration path is surprisingly smooth. Automated codemods, compatibility flags, and the ability to revert most changes during transition.

Quick Sips ☕

React Router Gets Its RSC Badge 

July 16th brought React Router's RSC support with a new Data Mode that mixes traditional loaders with RSC props—because apparently we needed another way to fetch data in React. At least this one has merit: server components only ship what renders, built-in data batching, and incremental adoption without rewrites.

LiftKit UI: The Golden Ratio's Revenge

Remember when design systems were just "use Bootstrap and pray"? LiftKit decided mathematics should run the show, building everything on the golden ratio (φ ≈ 1.618). It's ASMR for developers – every margin, font size, and border radius calculated with subpixel precision to create those "oddly satisfying" layouts that just feel professional. Material 3 Dynamic Color integration, automatic optical corrections, and components that adjust themselves based on context. It makes your websites look like they were touched by a design deity instead of... you know, developers.

Astro 5.12 Embraces TOML Life

TOML support in Astro content collections because apparently we needed another markup language. Fair enough – TOML is actually pleasant to work with, and now you can manage structured data without YAML's indentation anxiety or JSON's bracket hell. The Netlify adapter upgrade brings their entire platform to localhost, including the Image CDN server and Blobs support. Plus experimental raw environment values for those tired of Astro's helpful type coercion turning your "false" strings into actual booleans.

Effect 3.17: Testing Gets Less Painful 

Effect implemented useful testing utilities with Layer.mock for partial service implementations and Random.fixed (interesting naming choice) for deterministic sequences. The new Effect.ensure* functions add compile-time guarantees for your effect types, while Struct.entries gives you properly typed object entries instead of the usual [string, any] disaster.

State of HTML 2025

The State of HTML 2025 survey launched with Lea Verou back at the helm after stepping in "at the last minute". Now through the end of July is crucial for influencing Interop 2026, and this year's survey covers 35 new web platform features with helpful browser support icons so you don't accidentally get excited about experimental APIs. Previous surveys directly influenced browser roadmaps, so if you've ever wanted to passive-aggressively influence what Chrome prioritizes, here's your chance.

Josh Comeau's SVG Enlightenment

Josh Comeau shared his "Friendly Introduction to SVG", serving up interactive tutorials that actually make SVG animation approachable. Progressive drawing effects, animated strokes, and getTotalLength() wizardry – all explained with the kind of clarity that makes you wonder why everyone else's tutorials feel like reading assembly documentation.

Coffee Fact

The perfect pour-over takes 4-6 minutes and a 1:15 coffee-to-water ratio. Much like a good framework release, it requires patience, precision, and accepting that most people will just grab whatever's convenient anyway.

See you next week. Happy coding & brewing!

JOIN THE BREW CREW

Don't miss the next episode and stay up to date completely for free