The Weekly Dev's Brew #17 ☕

The Weekly Dev's Brew #17 ☕

Fresh-roasted web dev insights served hot: Biome v2's type-aware linting without TypeScript, CSS animation gotchas that'll save your sanity, and more developer treats. Perfect with your morning coffee ☕

☕ Good Morning, Devs

Grab your favorite mug because we're brewing up some serious development heat today. While you were probably debugging CSS grid for the hundredth time, the folks at Biome just dropped version 2.0 and honestly? It's making me question every linting decision I've ever made.

🔥 Main Story: Biome v2 "Biotype" - The Linter That Doesn't Need TypeScript to Understand TypeScript

Here's something that'll wake you up faster than a double shot: Biome v2 just became the first JavaScript and TypeScript linter that provides type-aware linting rules without actually needing the TypeScript compiler.

Let that sink in for a moment. They built their own type inference engine.

Now, building a type inference engine is one thing. Keeping it accurate and up-to-date with TypeScript's ever-evolving type system? That's a whole different beast. The TypeScript team ships new features and edge cases faster than most of us can keep up with our changelogs. Still, huge respect to the Biome team for taking this on—the ambition alone is impressive.

The Technical Reality Check

Remember when everyone said "just use ESLint with typescript-eslint, it's fine"? Well, Biome's noFloatingPromises rule is already catching 75% of the cases that typescript-eslint would catch, but at a fraction of the performance cost. That's genuinely impressive for a project that's only been around for two years (more or less).

What's Actually New:

  • Multi-file analysis: Finally, lint rules that can see beyond the single file they're analyzing. Revolutionary concept, I know.

  • Type inference without TypeScript: Because apparently building your own type system is easier than depending on Microsoft's.

  • HTML formatter: Still experimental, but given the team's track record, it's probably worth experimenting with if you're feeling adventurous.

  • Monorepo support: Nested config files that actually make sense. Who could have predicted developers wanted this?

The Performance Promise

Here's where it gets interesting. The file scanner (yes, they built their own) exists because Biome v1 had a fundamental limitation: lint rules could only look at one file at a time. That's fine for catching basic syntax issues, but the really useful linting rules—the ones that catch cross-module type errors or unused exports—need to understand relationships between files.

So they built a file scanner that indexes your entire project. The obvious trade-off? Speed. Scanning files takes time, and Biome's whole selling point has been performance.

Their solution is clever: the scanner is opt-in by default. Translation: migrating from v1 to v2 won't suddenly make your builds crawl. The scanner only runs full-throttle when you enable "project rules" that actually need type information.

Smart move. Nothing kills adoption faster than making everyone's CI pipelines timeout.

Migration Reality

Run npx @biomejs/biome migrate --write and supposedly it handles all the breaking changes. In practice? Well, there's still a migration guide for the things they "couldn't automate." Because of course there is.

Bottom Line: Biome v2 is either the future of JavaScript tooling or an incredibly ambitious experiment. Either way, it's pushing the entire ecosystem forward, and that benefits everyone.

☕ Quick Sip: Resources Worth Your Time

CSS Transform Animation Gotcha 🎭

Jake Archibald just dropped a mind-bender about CSS transform order. Turns out transform: rotate(0) behaves differently than transform: none during animations. Because CSS wouldn't be CSS without inexplicable edge cases.

Cloudflare Workers KV Outage Postmortem 📉

June 12th incident report is out. TL;DR: Third-party storage dependency caused cascading failures. Their solution? Reduce dependencies on storage they don't control. Groundbreaking insight, truly. Also, if you wondered why half the internet felt broken that day, now you know.

269,000+ Sites Hit by JSFireTruck Malware 🚨

JavaScript malware campaign infected over 269,000 websites in a single month. Because apparently supply chain security is still more of a "nice to have" than a requirement. Time to audit those third-party scripts you blindly copy-pasted from Stack Overflow.

ARIA Accessibility Deep Dive

Smashing Magazine published a comprehensive guide on what they wish developers knew about ARIA. Spoiler: most of us are doing it wrong. Essential reading if you've ever wondered whether your "accessible" components actually help anyone.

Read the guide →

LangGraph for Complex Workflows 🔄
Surma breaks down LangGraph's approach to building AI workflows with loops and conditional logic—something LangChain couldn't handle. Includes practical examples of binding tools and handling multi-step AI processes. Useful if you're building anything beyond basic LLM interactions.
Check out the breakdown →

🎧 Latest Podcast Episode

Catch our conversation with Rachel-Lee Nabors on exploring AI's impact on web development. We talk about platform 'enshittification,' personal agents, and yes—MCP makes an appearance (timely, right?). Plus why your documentation might be training tomorrow's LLMs. Perfect listening for your commute or while debugging that failing test that's been haunting you all week.

☕ Coffee Fact of the Day

The coffee ring stain effect (why your mug leaves those perfect circles on your desk) happens because coffee droplets contain suspended particles that get pushed to the edges as the liquid evaporates. Scientists call this the "coffee ring effect," and it's surprisingly useful in research.

Medical researchers use it to build biosensors that detect disease proteins as low as 3 picograms per milliliter—the ring naturally concentrates biomarkers where gold nanoparticles can spot them. Meanwhile, Cambridge researchers figured out how to control the effect for 3D printing, successfully printing 4,500 nearly identical electronic devices on a single silicon wafer.

Happy coding, and may your deployments be as smooth as your morning brew ☕

The Weekly Dev's Brew
Your morning companion for web dev insights

JOIN THE BREW CREW

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