Node 20 coming in hot

Issue #180.April 20, 2023.2 Minute read.

Today’s issue: Nodelers vs Denosaurs, npm install hot-singles-near-me, and How to Train Your Dragon Large Language Models.

Welcome to #180.

Eyeballs logo

The Main Thing

bald aliens from star wars playing clarinet with the node logo on their heads

Nodelers in their natural habitat.

Node 20 coming in hot

Node.js is kind of like my vacuum cleaner: it’s not the most powerful piece of technology in the world, but it’s been in my life for a long time, and it (mostly) gets the job done. Oh, and I haven’t upgraded it for years.

But it’s time for you to forget everything you thought you knew about Node, because v20 just came out with some game-changing new features that you might actually use/notice. Ok, don’t actually forget everything you know, but the new stuff is pretty exciting:

  • New (experimental) permission model — This lets you restrict access to specific machine resources during program execution, so you can prevent your app from accessing or modifying sensitive data or running potentially harmful code. It’s a big milestone for Node in addressing some of its well-documented security issues.

  • Stable Test Runner — The node:test module might be old news for hardcore Node fans (Nodelers?) who have been using the experimental version for a while now. But for the rest of us, this now-stable core module gives you a limited subset of the functionality provided by testing frameworks like Jest right inside of Node.

  • Single Executable Apps — You can now compile applications into a single executable, along with the entire Node.js core. This allows you to run Node apps on systems where Node isn’t installed. Just remember if you don’t like this, make sure to let Wes know. He personally built this feature, Node, and JavaScript by himself.

Bottom Line: Deno stans might feel tempted to brag and say that “Deno has already had all of these features for years.” And they’d be right.

But Node’s dominant market share means that it can afford to take a little longer introducing new stuff, and most developers will probably just stick with it — because even if they’re not true Nodelers, they might just be too lazy to switch it out for a whole new vacuum cleaner.


propelauth logo

Our Friends
(With Benefits)

Guy on motorcross bike with wheels falling off

Your auth solution after signing up your first enterprise customer.

PropelAuth is the smart way to scale your auth

If you’re a startup, what’s the last thing on Earth you want to do? Make a business deal with Elizabeth Holmes and SBF.

But the second to last thing you want to do? Waste engineering time building additional functionality on top of your auth provider 💀.

That’s what’s nice about PropelAuth. They make it super easy to go live quickly, but they’re specifically designed for B2B products — so you get all the enterprise auth features you’ll ever need, right out of the box:

  • Self-service portals let your end users sign up for your product, invite coworkers, manage permissions, and set up enterprise SSO/SAML.

  • It handles all transactional emails, 2FA enrollment, and RBAC.

  • Everything is hosted on your own domain, using whatever backend you like.

PropelAuth just works on day 1, and it keeps just working as you scale to the moon.

Check out their “Free Until Funded Plan” — it’s completely free for startups until you’ve raised $1m in funding.

Tip logo

The Tip

Sponsored by Sleuth

Their new Goals and Automation feature helps you track clear goals and objectives around deployments so you can crush your quarterly objectives. Check out Sleuth TV Live on May 4th to learn more.

Did you know that Chrome DevTools has some magical shortcuts powered by the $? Here are some of the most useful ones:

$() - is an alias for document.querySelector(). It allows you to select the first element that matches a given CSS selector. For example, $('div') would return the first div element on the page.

$$() - is an alias for document.querySelectorAll(). It returns an array of all elements that match a given CSS selector. For example, $$('div') would return all div elements on the page.

$0, $1, $2, ... $n - are references to the elements you have recently selected in the Elements panel. $0 represents the most recently selected element, $1 represents the second most recent, and so on.

$_ - represents the value of the most recently evaluated expression in the console.

$x() - allows you to query the DOM using XPath expressions. For example, $x("//div") would return all div elements on the page.

C.R.E.A.M. - Wycliff Jean 🤝 Chrome DevTools

Cool Bits logo

Cool Bits

  1. In Deno vs. Node, Piumi writes about why developers have been slow to adopt Deno, and why so many of us still identify as Nodelers.

  2. Replit wrote about How to train your own Large Language Models. It’s also the title of the highly educational How to Train Your Dragon remake that I’ve been working on to get my toddler ready to go to his AI bootcamp this summer.

  3. CarbonQA provides high-quality QA services for dev teams, so you’ll never have to do it yourself again. They work in your tools, talk with your team on Slack, and let your devs be devs. [sponsored]

  4. Rich Harris gave a 34-minute talk called, Hot takes on the web. His Stephen A. Smith impression still needs a little work, but it’s getting better.

  5. Yoav Balasiano created a VSCode extension called Pretty TypeScript Errors, which (I learned the hard way) helps make your TS errors “prettier and more human-readable”, but it does not make them Pretty Little Liars themed.

  6. Vite 4.3 just came out, and (spoiler alert!) they say it’s fast.

  7. Lars Wirzenius wrote his first-person account of The early days of Linux while he was at the University of Helsinki with Linus “I-maybe-used-to-be-nice?” Torvalds.

  8. GitHub just introduced npm package provenance — which gives users a verifiable way to link a package back to its source repo and the specific build instructions used to publish it. This should help improve npm security, but I still haven’t heard back from Nat Friedman on why npm install hot-singles-near-me isn’t working.