#479 — March 13, 2020

Unsubscribe  :  Read on the Web

JavaScript Weekly

📙 JavaScript: The First 20 Years — Allen Wirfs-Brock and Brendan Eich (the creator of JavaScript) have written a paper for the forthcoming History of Programming Languages Conference about how our favorite ‘sidekick scripting language for Java’ was built and has grown. It’s long, goes deep into the tech and syntax development side of things, and is sure to be my main weekend reading.

Allen Wirfs-Brock

How I Made a '3D' Game in Only 2KB of JavaScript — This is one of those detailed, fun, ‘learn a few tricks’ type walkthroughs. I’ve always been fascinated how people pull off various effects in games and how they get their code down to such small sizes. A fun read.

Frank Force

Faster CI/CD for All Your Software Projects Using Buildkite — See how Shopify scaled from 300 to 1500 engineers while keeping their build times under 5 minutes.

Buildkite sponsor

RedwoodJS: Bringing Full-Stack to the JAMstack — A new, opinionated framework that combines React, GraphQL, Prisma2, and lots more out of the box. Notably it comes from Tom Preston-Werner, one of the original founders of GitHub.


Why Svelte Is Our Choice for a Large Web Project in 2020 — A thorough analysis of the pros and cons of picking Svelte over, say, React or Vue.js right now.

Ryan Atkinson

Next.js 9.3 Released: The React Powered Site Building Framework — A minor point release of the popular Next framework can’t be a big deal, right? Wrong – the all new ‘Preview Mode’ (which is a game changer), smaller runtime, and new static site generation options really take things up a notch while still not introducing any breaking changes.

Next Team

⚡️ Quick Releases

💻 Jobs

UX/Frontend Engineer @ Siteline — Join the founding engineering team at Siteline and help us revolutionize the payments process for construction.


React + Rails Experts — Join Our Bootsrapped Remote Team — Aha! is primarily a Rails application, but we are using React to make excellent interactive experiences on top of Rails.


Find a Dev Job Through Vettery — Vettery is completely free for job seekers. Make a profile, name your salary, and connect with hiring managers from top employers.


📘 Articles & Tutorials

Aborting a Signal: How to Cancel an Asynchronous Task — Cancelling asynchronous tasks has always been tricky and while there’s now an official way to do so, it’s still not entirely straightforward. You might like Kyle Simpson’s CAF (Cancellable Async Flows) library to make the process easier.

Tomasz Jakut

Demystifying Async Programming in JavaScript — A lot to learn from this exploration for beginner and intermediate developers.

Yunchi Luo

Building with Web Components — The history and current state of Web Components in 2020.

Heroku sponsor

Designing the Perfect Typescript Schema Validation Library — Which, spoiler alert, has resulted in the creation of Zod, a schema validation library with static type inference.

Colin McDonnell

What is a Higher-Order Function? — You might have heard the term “higher-order function” thrown around in JS circles. This post uses some examples to attempt to define this concept.

Nick Scialli

How to Build a Native Desktop GIF Search App with NodeGui — Atul Ramachandran demonstrates how to install NodeGui (a Qt-driven desktop app library) and use it to build a “meme searcher.”

Atul Ramachandran

Slow Code 'Hates Him'.. Optimizing a Web App from 1 to 60 FPS

Steven Waterman

Why I Don't Use Classes“Instead of classes, I prefer modules that expose groups of functions that accept state and other dependencies.” This is a popular attitude in the JS space, to be fair.

Andy Peterson

Don’t Build Your Own Analytics: Try Logi, The Only Developer-Grade Embedded Analytics Platform

Logi Analytics sponsor

Understanding Vue's Deep CSS Selector — Demonstrates how to use the ‘deep’ selector in Vue, a powerful tool for resolving certain CSS issues.

Marina Mosti

Angular 9's Best Hidden Feature: Strict Template Checking — A lesser-known feature of Angular 9’s Ivy compiler: Find and report more errors than ever using something called ‘strict template checking.’

John Papa

🔧 Code & Tools

Future-Proofing Firefox’s JavaScript Debugger Implementation — A run through some of the major improvements made to JavaScript debugging in the Firefox DevTools, including garbage collection, compartments, forced returns and exceptions.

Jim Blandy and Harald Kirschner (Mozilla)

Turndown 6.0: An HTML to Markdown Conversion Library — Used to be called to-markdown. Available in both Node and browser packageable forms.

Dom Christie

Code Tour: VS Code Extension to Record and Playback Guided Code Walkthroughs — This looks really promising for teams that want to help new hires get familiar with certain features of a codebase, essentially replacing actual training sessions.

VS Live Share Contrib

Gain Real-Time Insights in Your Front-End Performance with Site24x7

Site24x7 sponsor

sort-isostring: A Tiny Utility to Sort ISO 8601 Date Strings

Luke Edwards

Uid: A Tiny Utility to Generate Random IDs of Fixed Length — Generate randomized output strings of fixed length using lowercase alphanumeric characters, for Node and the browser.

Luke Edwards

on-change: Watch an Object or Array for Changes

Sindre Sorhus