#​387 — May 6, 2021

Read on the Web

🖋 Just a note to say we're experimenting a little bit with the format of the newsletter over the coming weeks, so if you have any feedback, hit reply and let us know. We're also always keen for submissions so let us know about those too - thanks for your support! :-)
Peter Cooper, your editor

Node Weekly

Sindre Tears Off the CommonJS Bandaid, Moves Exclusively to ES Modules — A common theme in the past few weeks is just how ready Node is for ES modules, and so it goes with Node module powerhouse Sindre Sorhus who’s been waiting for this day for 10 years. He recommends Dr. Axel’s guide if you want full details, but otherwise it’s fully time to get on the ES modules train, he says.

Sindre Sorhus

Dependency Managers Don’t Manage Your Dependencies — Christoph Nakazawa has kicked off a new series on JavaScript infrastructure by putting the role of tools like npm, Yarn, or pnpm into context and explaining how you can begin to ‘take ownership’ of your dependencies.

Christoph Nakazawa

Document Database. SQL Queries. In-Memory Speed — The No. 1 reason developers choose Couchbase? You can use your existing SQL skills to easily query and access JSON. That’s more power and flexibility with less training. Learn more.

Couchbase sponsor

Node 16.1 (Current) Released — A relatively minor (in the literal, as well as semver, sense) release focused on fixes, refactorings, and docs. The only ‘notable change’ is you can now use read on a fsPromises file handle without any params. A calm moment after the excitement of Node 16 last month :-)


Build a SaaS Platform with Stripe — A set of tutorials that brings together a variety of moving parts including Auth0, Next.js, Prisma and, of course, Node.

Jon Meyers


  • Node.js 10 went 'end of life' last Friday, so you'll need to be using Node 12 or above (ideally 14+) if you want ongoing security releases. More on what it all means here.
  • V8 v9.1 has been announced — expect it in a Node near you soon.
  • VS Code April 2021 has been released. It bumps Electron up to Electron 12 (and therefore Node 14.16 behind the scenes) and there are some JS debugging tweaks.

Avoiding the Pitfalls of Iteration-Based Development — Explained in 5 pull requests, see how Sourcegraph engineers avoided the sunken cost fallacy and local maximum trap. Read it now.

Sourcegraph sponsor

▶  Synchronizing Async Functions in Node(31-minutes.)
Giuseppe Gurgone

How to Build a Discord Bot with Node.js and Autocode
Scott Gamble

Cloning JavaScript Objects with Graph Theory
Andrea Simone Costa

Understanding Types with SQLite and Node.js
Sean C Davis

💻 Jobs

Find Software Engineering Jobs with Hired — Take 5 minutes to build your free profile & start getting interviews for your next job. Companies on Hired are actively hiring right now.

🛠 Code and Tools

terminal-image 2.0: Display Images in the Terminal — Can also display images in high resolution in iTerm2 because of its special image support.

Sindre Sorhus

node-dev 7.0: Zero-Conf Node Process Restarting — Hooks into require and only reloads when required files are updated.

Felix Gnass

Dotenv 9.0: Load Environment Variables From .env in Node — After 18 months, it’s had a flurry of updates culminating in this version 9.0.

Scott Motte

How to Scale Prometheus (Hint: It’s Not Prometheus)

Lightstep sponsor

sitemap.js 7.0: Sitemap Generation Library and CLI Tool — XML ‘sitemap’ files help search spiders (particularly Googlebot) crawl your site and you can offload the boring task of generating them to this.

Eugene Kalinin

The Braintree Node.js Library 3.4 — If you use Braintree’s payment services, this is the first major update to their Node client library in a long while.



  • node-wasm-run — Run arbitrary WASM/WASI files on V8.
  • JZZ — MIDI library for both Node and browsers. For a bit of fun, click on the logo on its homepage ;-)
  • Terminal Kit — 'Full blown' terminal library for working with colors, keyboard and mouse handling, input controls, etc.
  • Denoify — Support Deno without maintaining a separate port.
  • is-interactive — Check if stdout or stderr is interactive.

😍 OK, this is cool..

MapSCII: A Text-Based World Map Renderer for the Console — Imagine Google Maps but in the terminal.. yet zooming and panning with the mouse all still works (depending on your terminal’s support). The project is itself written in Node, naturally. You can run it locally (see the GitHub repo) or at your terminal go run telnet mapscii.me to see it live - it’s running right now.

Michael Straßburger