Popular Node.js practices to reconsider

#​451 — August 25, 2022

Read on the Web

Crawlee: A New Web Scraping / Automation Library — It’s always neat to see a new project launched with some fanfare. Crawlee gets a ▶️ 3-minute introductory screencast, a launch post, and a nice homepage. It builds on top of things like Puppeteer and Playwright but can handle proxies, retries, spidering, working around bot blocks, and the like. While it comes from Apify, it’s open source too.

Apify

Popular Node.js Patterns and Tools to Reconsider? — Yoni is well known for his work in cataloging Node best practices but he thinks we should reflect upon entrenched approaches over time. Here he presents nine common approaches to reconsider, including the use of Dotenv, Passport.js, and having conditional code based on the value of NODE_ENV.

Yoni Goldberg

RedisGreen: Secure, Scalable, Full-Featured Redis 7 Hosting — The latest Redis features, instrumented and scaled with the tools teams need as they grow.

RedisGreen sponsor

Node v18.8.0 (Current) Released — This update introduces --build-snapshot and --snapshot-blob options for creating and using user-land snapshots. npm also gets bumped to 8.18.0 which introduces the npm query command.

Ruy Adorno

QUICK BITS:

  • The Deno project has made an announcement around some ‘big changes ahead’ which includes a goal to “make the vast majority of npm packages work in Deno within the next three months.” This will certainly open up the alternative runtime much more to existing Node developers.

  • 🥯 In other server-side JS runtime news, Bun was unveiled to much fanfare recently and its creator has now unveiled a company around it called Oven (ha! – we do like a pun) along with $7m of funding. There’s a lot of work ahead.. a ‘grind’, if you will, and a lot of folks in the community are worried about potential burn-out there. Jarred is very passionate about the potential though, and we look forward to seeing future developments.

Node v16.17.0 (LTS) Released — This is one of those incredibly useful LTS releases where a bunch of more modern features get backported and made available to developers who can’t run ‘Latest’ all the time. With 16.17.0, 16.x users gain access to the util.parseArgs CLI argument parsing function, the experimental ESM loader hooks API, and the node:test module and runner, plus a variety of dependency updates.

Michaël Zasso

How to Monitor a Node.js Application

New Relic sponsor

Deploying a Node App with AWS Elastic BeanstalkElastic Beanstalk was one of the earliest app deployment orchestration services and while there are now lots of approaches to deploying apps, EB remains an option for AWS users.

Samson Omojola

How to Use OpenTelemetry to Trace Node.js Applications — A five-step tutorial sharing how to instrument your app to better troubleshoot production errors.

Patil, Frota, Panchamukhi (Red Hat)

🛠 Code & Tools

file-type 18.0: Detect the File Type of a Buffer, Uint8Array or ArrayBuffer — For example, give it the raw data from a PNG file, and it’ll tell you it’s a PNG file. Uses magic numbers so is targeted solely at non text-based formats.

Sindre Sorhus

Soketi: Simple and Fast WebSockets Server“Ever dreamed about Serverless WebSockets? Soketi can be deployed to Cloudflare Workers. All around the world, closer to your users. Same Pusher protocol.” Written in TypeScript.

Soketi Team

Do More of What You Love: Join the Collaboration Community

Polywork sponsor

brotli-wasm: A Reliable Brotli Compressor and Decompressor — Covers both Node and the browser by means of WebAssembly.

HTTP Toolkit

NodeGui: Build Cross Platform Desktop Apps with JS and CSS — Sounds a bit like Electron? Of course. But it’s somewhat different as it uses the Qt GUI framework which can make things more complicated but also more efficient in terms of memory use.

NodeGui

QUICK RELEASES:

💻 Jobs

Senior JavaScript/TypeScript Developer (Remote or Warsaw) 🇵🇱 — Join the CKEditor team to develop an Open Source project used by millions of users around the world 🚀and realize your true potential.
CKEditor

Find Tech Jobs with Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It’s free for job-seekers.
Hired

Related Post

Douglas Crockford on ‘retiring’ JavaScriptDouglas Crockford on ‘retiring’ JavaScript

<table border=0 cellpadding=0 cellspacing=0 align="center" border="0"> <tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.55em; "> <div> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr> <td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height:

cd /home/nodejs/newscd /home/nodejs/news

<table border=0 cellpadding=0 cellspacing=0 align="center" border="0"> <tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.55em; "> <div> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr> <td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height:

Genius misuse of WOFF 2 and Brotli to win a JavaScript contest.Genius misuse of WOFF 2 and Brotli to win a JavaScript contest.

<table border=0 cellpadding=0 cellspacing=0 align="center" border="0"> <tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.55em; "> <div> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr> <td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: