#521 — January 15, 2021

Unsubscribe  |  Read on the Web

JavaScript Weekly

The State of JS 2020 Survey Results — 23,765 people from 137 countries took part in the recent State of JS survey and while there are some common criticisms of the project, the results are nonetheless interesting and we’ll be digging into some in forthcoming issues. Standouts include:

State of JS

Announcing TypeScript 4.2 Beta — What’s new? Leading/middle rest elements in tuple types (e.g. let bar: [boolean, ...string[], boolean]), smarter type alias preservation, stricter checks for the in operator, and more.

Daniel Rosenwasser (Microsoft)

⭐️ Professional JavaScript Learning Path — From JavaScript foundations, all the way to Hardcore Functional JavaScript, find out how far you can go with your JavaScript abilities in this comprehensive learning path.

Frontend Masters sponsor

Snowpack v3.0: Reimagining Web Development with ESM — You can now import any npm package on demand (with streaming imports), and there’s a new native JavaScript API. Oh, and it’s the one year anniversary of Snowpack’s 1.0 release! 🎉

Fred K. Schott

We asked Snowpack's creator, Fred K Schott, for a few words on Snowpack 3.0:

I couldn't be more excited about this launch! Streaming imports are a game changer that simplify dependency management by fetching packages as soon as you need them: pre-built, pre-bundled and ready to run.

We also shipped a first-class integration with esbuild to bundle Snowpack builds 100x faster than Webpack, Rollup or Parcel (seriously, look at these benchmarks!). If you haven't had a chance to check out Snowpack yet, v3.0 is a great chance to jump in.

Node Package Maintainers, Get Ready For ES Modules — ES modules are rapidly becoming a day to day reality for Node.js package maintainers, so spare a thought for Sindre who has about 20 million packages (slight exaggeration) to his name. Sindre shares some basics on why it’s important and what his plans are.

Sindre Sorhus

📖 Articles, Opinion & Tutorials

Advanced Promise Patterns: Promise Memoization — Memoizing async methods to simplify caching and avoid common race conditions. An interesting example of memoization 👍

Jon Mellman

▶  Building FPGA Hardware Using TypeScript: Driving an RGB LED Panel — Most people aren’t likely to play with FPGAs rather than cheaper microcontrollers but this is a wonderful detailed JS-flavored look into that world.

Low Level JavaScript

How to Implement An Exponential Backoff Retry Strategy — Automatically retry an async operation in an efficient way

Tamás Sallai

The Effortless Backend for JavaScript Applications with GraphQL — Add state to your JavaScript apps effortlessly with Fauna - the secure and operations-free data API for Jamstack.

Fauna sponsor

10 Best Practices to Containerize Node Webapps with Docker — Production-grade guidelines for building optimized and secure Node-based Docker images whether for microservices, server-side rendering, or stand alone apps.

Liran Tal and Yoni Goldberg

The navigator.clipboard API — A look at async read and write methods for managing clipboard data.

David Walsh

▶  Working with WebSockets on AWS — A 30 minute screencast focusing on using API Gateway as a WebSocket endpoint to talk with a serverless Lambda function. Both the client and the serverless function are written in JavaScript, of course.

Ryan H Lewis

▶  Building Your Own E-commerce System in 25 Days — 25 videos covering 25 days of using Next.js, Netlify and Stripe to build an e-commerce system.

Jon Meyers

OpenTelemetry and Observability: Achieving Full System Visibility

Lightstep sponsor

Deploying a Serverless Jamstack Site with RedwoodJS, Fauna, and Vercel — A neat combination of ideas and technologies here. RedwoodJS is a ‘full stack Jamstack’ framework (created by one of the co-founders of GitHub), Vercel provides the deployment and hosting, and Fauna is a serverless database/data API.

Anthony Campolo

▶  Publishing a Vue.js 3 Component on npm

Lachlan Miller

🛠 Code & Tools

supported by Okta

Altair: A Feature-Rich Cross Platform GraphQL GUI Client — A tool clearly written using Web technologies but available for macOS, Windows, Linux, etc. for testing and working with GraphQL and GraphQL APIs.

Sir Muel

Merge Chance: Will Your Pull Request Get Merged? — A very bare bones, but interesting, tool for seeing what percentage of a project’s pull requests from outsiders get merged in. For example, 83% do for Redis whereas only 23% do for Vue.js.

Piotr Zakrzewski

Cheerful, Collaborative Project Management — Some PM tools are too simple. Others, unwieldy and unpleasant. Clubhouse is nothing but good adjectives. Give us a try.

Clubhouse.io sponsor

Compiled: Build Time Atomic CSS-in-JS — Write your styles in JavaScript with the full power of CSS then have them compiled ahead of time. GitHub repo.


svelte-dnd-action: An Action-Based Drag and Drop Container for Svelte — Makes the bold claim that it “supports almost every imaginable drag and drop use-case, any input device and is fully accessible.”

Isaac Hagoel

Handtrack.js: Realtime Hand Detection in the Browser — Of course, there’s a demo. It seems to work pretty well.

Victor Dibia

vno: A Vue / Deno Love Story? — The first native build tool for compiling and bundling Vue single-file components in a Deno runtime.

Andrew Rehrig

Announcing Scala.js 1.4.0 — Build robust front-end web applications in Scala with Scala.js


💻 Jobs

Senior JavaScript Engineer - Platform Engineering (Berlin, DE) — Help us improve our web performance & frontend infrastructure with actionable feedback, scalable workflows & tools our devs love to use.


Senior Frontend Developer (m/f/d) — We’re looking for talented React / React Native devs to join our InsureTech-Team and help us shape the insurance world of tomorrow. Offering responsibility, ownership and growth possibilities.

Getsafe Digital GmbH

Find Your Next 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.