Plus fuzzy string matching, Promise.all(), and multiplayer tic tac toe in 640 bytes. |

#​546 — July 9, 2021

Unsubscribe  |  Read on the Web

JavaScript Weekly

The State of Web Workers in 2021 — The web is typically single-threaded, but two years ago Surma told us why to always use Web Workers to bring multithreading to your solutions despite the difficulties. Almost every client supports them now, so Surma makes the case again and explains why Web Workers deserve a place in your projects.

Surma

How export default thing is Different to export { thing as default } — When someone like Jake ends up having to chat to the V8 team to figure something out and then learns something, it’s worth following along. Off down the export rabbit hole we go...

Jake Archibald

Uptime Monitoring Is Now Available in AppSignal — Uptime monitoring is the first line of defense against downtime. Ping your apps every minute from 4 locations around the world and receive alerts when something is down. Now you'll know about downtime before your users do.

AppSignal sponsor

npm audit: Broken by Design“The way npm audit works is broken. Its rollout as a default after every npm install was rushed, inconsiderate, and inadequate for the front-end tooling.” Dan adopts an untypically critical tone but does a good job of demonstrating how vulnerabilities are not all alike when it comes to whether they matter.

Dan Abramov

A Look at Building with AstroAstro, which we featured a month ago, is a new framework for building sites where you get to use JavaScript frameworks but sites are rendered in static form.

Chris Coyier

Elementary: React-Inspired Functional, Declarative Audio Applications — Can writing audio DSP software be “simple, fast and fun”? Not up until now, but Elementary intends to change all that, and thus lowering the barriers to entry for this burgeoning field.

Nick Thompson

Quick Bits

Releases

Highlight.js 11.1 — Web syntax highlighter library.
Gatsby 3.9 — React 'dynamic site generator.'
zx 2.0 — Better scripting with Node.js.
Snowpack 3.8 — Module driven frontend build tool.
ckeditor 29.0 — Rich text editor framework.
Rollup 2.53.0 — Next-generation ES module bundler.
TIFF 5.0 — TIFF image decoder written entirely in JS.

💻 Jobs

Now Hiring: Work with the Best, Building the Best — The sharpest developers, building the fastest websites. Looking for more, to build more. Join us.
Econify

Senior Backend Engineer (Berlin / Remote) — Honest, simple insurance. Modern TypeScript stack. Join our small team, take ownership and push your ideas.
Feather

Find a Job Through 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

📖 Articles, Opinions & Tutorials

TypeScript and Native ESM on Node.js — This topic comes up time and time again, and for good reason - it’s the way things are headed. Dr. Axel covers the essentials you need to know in order to use and produce native ECMAScript/ES modules on Node when using TypeScript.

Dr. Axel Rauschmayer

How to Use Promise.all() — Handle multiple promises at once, in parallel, and then get the result in a single aggregate array.

Dmitri Pavlutin

Ultimate Guide to Building a UI Library: Building Robust Components — TJ VanToll shares what he’s learned from over a decade of writing and working with UI components. Go to the blog series.

Progress KendoReact sponsor

When a Click is Not Just a Click — There are nuances to consider when listening for a click event (such as a ‘click’ sent from a keyboard versus one from a mouse). This post dives into how you can distinguish different types, and what opportunities arise from identifying them.

Travis Almand

▶  Using Deno Deploy to Release Super Fast Cloud Functions — Jack promises a look into the “potential JavaScript future” by building a chat app using Deno (a Node-a-like built by Node’s original author, no less) and deploying it on the Deno Deploy platform. This is easy to understand and follow along with, and the approach taken feels so natural.

Jack Herrington

Breaking Down Bulky Builds with Netlify and Next.js — Using Next.js’ Incremental Static Regeneration (ISR) coupled with on-demand builders and Netlify’s Next on Netlify build plugins to create a site that builds certain routes only when needed, cutting the build time down dramatically.

Átila Fassina

The Ultimate Guide to Cardinality for Observability

Lightstep sponsor

How to Structure a Large Scale Vue.js App
Daniel Kelly

What Is WebAssembly — and Why Are You Hearing So Much About It?
Mary Branscombe

🛠 Code & Tools

html2canvas 1.0: A JavaScript HTML Renderer — Take screenshots of pages or elements of pages and render them to canvas. There’s a live demo to the bottom right of the homepage. GitHub repo.

Niklas von Hertzen

pdfmake: Client/Server Side PDF Generation in Pure JavaScript — There’s a live playground of it in action, plus lots of code examples of how to use it to various ends. Built on top of pdfkit.

Bartek Pampuch

Fuzzball: Fuzzy String Matching Library — To tackle those cases where what’s typed isn’t quite what’s indexed. There’s a neat tree-themed Web-based demo. GPL licensed.

Nolan

Understanding and Preventing Common Security Vulnerabilities — Join Buildkite on a tour of some of the most common security problems companies face, and how you can prevent them.

Buildkite sponsor

Mantine 2.0: Full Featured React Component Library — An MIT licensed, TypeScript-based collection of over 100 components and hooks with native dark theme support and a focus on usability and accessibility. Plenty of documentation and examples.

Mantine Team

imask.js: A Vanilla JavaScript Input Mask — Rather than validate the syntax of input fields, how about preventing users from even entering invalid values?

imaskjs

TypeBox: JSON Schema Type Builder with Static Type Resolution for TypeScript — A type builder library that creates in-memory JSON Schema objects that can be statically resolved to TypeScript types.

Haydn Paterson

fzstd: High Performance Zstandard Decompression in a Pure JS Package
Arjun Barrett

Johnny Five 2.1: A JavaScript Robotics and IoT Programming Framework
Rick Waldron

Vue 3 Starter: An Opinionated Starter Template for Vue.js Projects
Gentrit Abazi

o