
Today’s issue: Next.js spicy mode, Web Components’ killer feature, and rethinking my JavaScript consumption.
Welcome to #435.


When you get caught sharing the password to your premium JavaScript bundler
When I saw that the VoidZero team announced a new product called Vite+, my first thought was “Finally, I can stream all of Evan You’s comedy specials in one place.”
But I guess I’ll have to continue pirating those off LimeWire, because Vite+ is actually a new “unified toolchain for the web” that builds on top of the team’s open source tools (Vite, Vitest, Rolldown, and Oxc) and bundles them with some new, less-open utilities into one Rust-powered CLI.
Here are a few early features they’re cooking up:
vite new – scaffolds monorepos with recommended structure, code generators, and built-in templates.
vite test – runs Vitest with browser mode, visual regression tests, and Jest-compatible APIs.
vite lint – uses Oxlint, which ships with 600+ ESLint-compatible rules and runs up to 100× faster.
vite run – a task runner and monorepo cache with automatic input inference (think Turborepo, but smarter).
vite ui – GUI devtools for analyzing build speed, bundle size, and module transforms.
In other words, it’s a single dependency for dev, build, test, lint, and everything else you’d normally duct-tape together in your toolchain.
And as you’ve probably guessed by now, they’ll be charging companies for this extra functionality. But thankfully, it will still be under a source-available license that’ll still be free for individuals and OSS projects.
Bottom Line: Vite+ aims to solve the technical problem of fragmentation in the JS tooling ecosystem – but it also wants to solve the money problem of funding all of the OSS tools in the Vite ecosystem (and the VC-backed company behind them).
That’s a bold strategy, but it’s refreshing to see an OSS startup try to make money without becoming yet another hosting provider.


When you see other teams bragging about their 'AI productivity gains'
You could argue that AI is transforming QA testing faster than any other part of software development.
That’s why QA Wolf’s Senior Engineering Director is hosting a free fireside chat, where he’ll cut through the noise and show specific ways his team is using AI for QA.
You’ll learn:
RSVP for the session to see how other orgs are using AI to improve their QA process.

They made this Front-end Developer Kit that comes with a best practices guide for monitoring, a solutions brief on catching issues early, and more.
function getEvenNumbers(numbers) {
let evenNumbers = [];
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 === 1) {
evenNumbers.push(numbers[i]);
}
}
return evenNumbers;
}
getEvenNumbers([1,2,3,4,5,6])

Right on cue, Vitest 4.0 just launched with visual regression testing and stable support for Browser Mode. But I haven’t been able to play with it yet because my mom changed the password to our household’s Vite+ account.
Nadia Makarevich wrote a data-driven deep dive on whether React Server Components really improve performance.
Next.js 16 just launched with all the features we wrote about last week, plus a new “spicy mode” for all users who verify their identity with Real ID.
Zed finally just launched on Windows and it’s a real native app (not Electron 🙏). Download it now to see if everyone’s favorite editor lives up to the hype. [sponsored]
Solito just released v5 of their wrapper around React Navigation and Next.js for sharing navigation code in RN apps.
You can now run complex, interactive commands in Gemini CLI like vim for editing, top for monitoring, and more.
Only idiots write manual tests – modern engineering teams like Notion, Dropbox and Wiz use Meticulous to maintain e2e UI tests that cover every edge case of your web app. [sponsored]
Jake Archibald wrote about importing vs fetching JSON.
Dave Rupert wrote about the killer feature of Web Components – besides the sense of moral superiority.
CodeRabbit cuts your code review time in half – and catches more bugs than your most OCD senior engineer. [sponsored]
The new TanStack devtools marketplace lets third-party developers build their devtools for TanStack.
Matt Smith wrote about rethinking async loops in JavaScript. It’s similar to how I’m rethinking my past decade of protein powder consumption after learning that it has more lead in it than a mechanical pencil.
Our logic is a little off. n % 2 will return 0 if n is an even number. The bug is that our code checks if it returns 1 (which would be an odd number).
To fix this, we can change that line to see if it evaluates to 0, not 1.
function getEvenNumbers(numbers) {
let evenNumbers = [];
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 === 0) {
evenNumbers.push(numbers[i]);
}
}
return evenNumbers;
}
getEvenNumbers([1,2,3,4,5,6])