Today’s issue: Whitney Houston’s thoughts on sync engines, the most famous PM in the world, and the ESLint replacement that refuses to let go of its high school glory days.
Welcome to #376.
When I realize that using Nuxt means I don't have to learn RSCs
My sleep-paralysis demon looked a lot different than usual last night. He was 3 feet tall, wore gold shoes, and kept telling me that “we’re two years away from Vue completely replacing React.”
That’s right, it was the Nuxt Leprechaun. And the only way I could get him to stop pinching me was to put on a green Nuxt Conf t-shirt and promise to write about the new Nuxt 3.16 release that just came out.
Thankfully, this update is packed with a bunch of interesting features and improvements – so I don’t have to risk lying to yet another mildly offensive spirit being. That never ends well.
Here are the goods:
create-nuxt
is a new tool for starting Nuxt projects that’s 1/6th the size of nuxi init
, and is bundled as a single file with all dependencies inlined.
Lazy hydration support now lets you control exactly when components hydrate, which can improve initial load performance and time-to-interactive.
Major perf improvements like adopting oxc-parser
for parsing Nuxt plugins, faster and smarter module resolution, and leaner file handling.
Bottom Line: If you haven’t checked out Nuxt and Vue for a while, you should – they’ve definitely made some big strides in DX and performance in the past year.
And if you feel a mysterious figure standing at the end of your bed on St. Patrick’s Day Eve, you might just want to pop another melatonin gummy and take your chances.
![]() ![]() ![]() ![]() |
When I use Sentry's AI to catch all the bugs my AI copilot created
Remember last month, when we told you that Lazar Nikolov was hosting a live debugging session where you “build, break, and fix” a Next.js app with Sentry?
Well, it turns out that a lot more people showed up to that BBF sesh than they were expecting – so they just shared a free replay, in case you missed it. It covers lots of good stuff like:
Setting up Sentry from scratch
Tracking errors and using the new Trace Explorer to improve performance
Leveraging some good ol’ AI to find and fix issues fast
Check out the replay when you’re bored at work – your boss will thank you later.
Their cross-platform PDF/A SDK lets you easily convert PDF to PDF/A that pass VeraPDF validation.
function todoReducer(state, action) {
switch (action.type) {
case "ADD_TODO":
const todos = state.todos;
return { ...state, todos: todos.concat(action.payload) };
case "REMOVE_TODO":
const todos = state.todos;
const newTodos = todos.filter(todo => todo.id !== action.id);
return { ...state, todos: newTodos };
default:
return state;
}
}
Nikita Prokopov wrote about how sync engines are the future. I remember Whitney Houston teaching us that lesson a long time ago.
Two principal engineers at AWS wrote some best practices for handling billions of invocations from AWS Lambda.
bit.cloud lets you use AI to build new full-stack features as reusable components that can be installed in your team’s existing applications. Bit’s HopeAI generates high-quality code, based on your dev standards and tech stack. [sponsored]
Oxlint just released its first beta and claims to be able to fully replace ESLint in small-medium projects. Still can’t believe they managed to name a linter after my high school mascot.
oRPC just released the v1.0 beta of its library for building APIs that combines RPC and OpenAPI.
QA Wolf gets you 80% automated test coverage for your web and mobile apps in weeks (not years), and they run all tests in 100% parallel. [sponsored]
Felipe Buenaño wrote about how the New York Times systematically migrated from Enzyme to React Testing Library. I personally get all my news from the pre-roll ads on YouTube, but this was a good article.
Anthony Fu created yet another useful side project called node-modules.dev, which lets you visualize your node_modules
and inspect dependencies.
Laurie Voss wrote some thoughts about AI’s effects on programming jobs. I’m not sure if he knows anything more than the rest of us do, but he sounds confident and he made some graphs – and that’s good enough for me.
This Convex repo contains their entire platform’s codebase, which they just open-sourced last month. [sponsored]
That famous Lenny guy interviewed Bolt’s CEO, Eric Simons, about all things Bolt and StackBlitz.
Hillel Wayne shared this perplexing JavaScript parsing puzzle. Let us know if you’re interested in becoming Chief Spot-the- Bug Officer for a certain JavaScript newsletter, Hillel. What the job lacks in pay, it makes up for in hazing team unity.
The todos
variable is being re-declared within the same block. Variables declared with const
and let
are block-scoped, meaning they don’t exist outside of the block they were called in. Blocks are created with {}
brackets around if/else
statements, loops, and functions.
There are many solutions, including changing the variable name in the different cases or removing the variable altogether. We can also wrap each of our cases in a block to isolate the variables.
function todoReducer(state, action) {
switch (action.type) {
case "ADD_TODO": {
const todos = state.todos;
return { ...state, todos: todos.concat(action.payload) };
}
case "REMOVE_TODO": {
const todos = state.todos;
const newTodos = todos.filter((todo) => todo.id !== action.id);
return { ...state, todos: newTodos };
}
default:
return state;
}
}