#​556 — September 17, 2021

Unsubscribe  |  Read on the Web

JavaScript Weekly

Q1K3: A JavaScript Homage to Quake in Just 13KB — It’s (another) quiet week for big JavaScript news, so we’re going with the fun angle and looking at a popular entrant to the latest JS13KGames contest that ended this week. No winners yet but this Quake clone is amazing given the limitations, and takes me right back to 1996 when I installed it off a magazine cover disc (when the demo even then was 10 megabytes).

Dominic Szablewski

ChowJS: An AOT JavaScript Engine for Game Consoles — It’s not every week we get to mention a new JavaScript engine. This post explains why another one is needed to run on gaming hardware in particular and how ChowJS fills a gap. Unfortunately it’s not open source.

Mathias Kærlev (MP2)

The Modern Guide to OAuth — Another OAuth Guide? Well yes, but... This guide covers all of the ways that FusionAuth actually uses OAuth. Become an expert without having to read all the specifications or write your own OAuth server. Get it for free today.

FusionAuth sponsor

Deno 1.14 Released — From engines and on to runtimes.. Deno has been making small but steady improvements over the past year and the latest point release is no different:

Hacker News had a nice little Deno discussion going on this week as well covering why people are using it, their experiences, etc.

The Deno Team


  • The pipe operator (|>) proposal is coming along nicely.

  • Nuxt 3, the next version of the popular Vue framework, is coming in about 3 weeks.

  • Fable 3.3, the latest version of a F# to JavaScript transpiler, is out with JS decorators support (though they don't compile to JS decorators, for reasons explained in the post).

  • Eric Elliott is back talking about software deadlines and recommends focusing on demos over deadlines.


MUI 5.0 – Material UI components for React.
jsPDF 2.4 – Client side PDF generation library.
Node.js v16.9.1 – Fixes a small V8 regression.
Kap 3.4.0 – Screen recorder built with JS.
NVM for Windows 1.1.8 – Node.js version management utility.
Espree 9.0 – Pure JS JavaScript parser.

💻 Jobs

Find JavaScript 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.

📖 Tutorials, Opinions & Stories

How to Record Audio Using the MediaStream API — A practical introduction to using the Media Capture and Streams API to record audio from an end user’s microphone then do something with it.

Shahed Nasser

Small Bundles, Fast Pages: What To Do With Too Much JavaScript — The less JavaScript there is to run, the quicker it will run (you hope)! Bundle size matters and this post touches on a few ways to monitor and improve it.

Ben Schwarz (Calibre)

Announcing JavaScript Security Sessions at SnykCon | Register For Free — Learn about malicious npm packages & npm dependency confusion attacks at SnykCon. Join us for free on Oct 5-7.

Snyk.io sponsor

An Intro to D3.js (Covering v5-v7) — A fork of Square’s Intro to D3.js introduction but updated to modern D3.js standards. Let’s get visualizing.

Danny Yang and Square

▶  Fastify in One Minute — This isn’t one of those ultra high level videos where you see nothing useful - it’s fast paced and code-first, all in one minute. And it might convince you to give Fastify, a Node.js webapp library, a go for your next HTTP API/webapp.


Using RTK Query in React Apps — Inspired by React Query, RTK Query lets you have similar functionality, but with Redux.

Gurami Dagundaridze

Generating PDF from HTML in React: An Example of Exporting Data Grids — Let's go deep into the PDF rendering labyrinth, in the safe hands of a guide, and export some advanced UI components.

Progress KendoReact sponsor

Pre-Selling a Programming Course and Making $550k in Revenue — If you liked the recent story about the creator of Vuetify making serious income from his efforts, maybe you’ll enjoy that of Josh Comeau (the author of 'CSS for JavaScript Developers') too.


How to Automate UI Tests with GitHub Actions
Varun Vachhar (Storybook)

Handling Shadow DOM in Protractor Tests
Punit Goswami (Wingify)

🛠 Code & Tools

JSPaint.exe: The Classic MS Paint as a Cross-Platform Native Desktop App — Based on the older JS Paint project then ported to a cross-platform app using GRaderJS (which is worth checking out on its own merits).

Dosyago Corp.

Linkify 3.0: Detect URLs and Email Addresses in Plain Text — Given some plain text containing things like links and emails, Linkify will generate the correct code to display it on the Web. Demo.


Tasuku (タスク): A Minimal Task Runner for Node — Tasuku, which is simply Japanese for ‘task’, provides a clean way to break up processes into small tasks which can then be run in the right order with progress displayed elegantly in the terminal. Check out the succinct README.

hiroki osame

Observability Won't Replace Monitoring (Because It Shouldn't)

Lightstep sponsor

Lowdb 3.0: A Small Local JSON Database — Supports Node, Electron and the browser, and might be suited if you want a very lightweight data store you can query with pure JS.


svg2pdf.js: Browser Based SVG to PDF Converter — There’s an online playground to give you a feel for what it can do.

yWorks GmbH

Atrament.js 2.0: A Library for Smooth Drawing on HTML Canvas
Jakub Fiala

Tethr: A Library Built on WebUSB for Controlling Digital Cameras
Baku 麦

“I apologize for writing a complicated program. I didn't have time to write a simple one.”

Tim Sweeney (via Twitter)