#​548 — July 23, 2021

Unsubscribe  |  Read on the Web

JavaScript Weekly

JetBrains' 2021 Developer Ecosystem Survey Results — Over 30,000 developers took the State of Developer Ecosystem 2021 survey, with 70% being JavaScript users. You can find the JavaScript-specific results here. Some interesting stats came of this:

  • React is regularly used by 49% of respondents, with Vue.js at 43%.
  • Go, TypeScript, and Python are the most common other languages JavaScript developers plan to learn soon.
  • 42% claim to not to write unit tests regularly.
  • Home working is, unsurprisingly, suddenly popular with 83% of developers WFH compared to 31% pre-pandemic.


💡 If you like this sort of thing, last year's State of JS results may also be of interest.

Easier Browser Debugging with Developer Tools Integration in VS Code — If you’re a VS Code user, you no longer have to use the Chrome Debugger or Edge Debugging extension as JavaScript debugging is now built in to the popular editor. Christian Heilmann has more on this here.

Microsoft Edge Blog

Locate and Resolve JavaScript Errors Instantly with Datadog — Troubleshoot user-facing incidents and resolve frontend JavaScript errors in context with the ability to correlate error logs with individual user sessions with one click. Try it yourself with a free Datadog trial.

Datadog sponsor

Plate 1.0: A Plugin Framework for Building Rich Text Editors with SlateSlate is a framework for building rich text editor controls, and Plate abstracts things one level higher offering a plugin system for adding your own functionality. Look at the big demo on the homepage to see the benefits. GitHub repo.

Taylor, Beyens and Murray

Node-RED 2.0 ReleasedNode-RED is a now very mature ‘low-code’ Node.js-based programming environment, particularly aimed at connecting together services or IoT devices. The 2.0 release focuses on upgrading dependencies, dropping old Node version support, and an (optional) improved text editor.

OpenJS Foundation



Hyper 3.1 – JS-powered terminal app.
RxDB 10.0 – Realtime database for JavaScript apps.
AdminJS 5.1 – Automatic admin interface for Node apps.
GoldenLayout 2.3 – Multi-screen layout manager for webapps.
flv.js 1.6 – HTML5 FLV Player.

💻 Jobs

Love Writing Code? Now Build Products as a Product Manager — We are hiring expert devs who want to become product managers. Help build products that are executed millions of times a day.

Senior Full-Stack Software Engineer (USA) — Ready to do your best work in a team that truly supports you? Join a culture that values autonomy, freedom, and collaboration.

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.

📖 Articles, Opinions & Tutorials

Simple Monorepos via npm Workspaces and TypeScript Project References — How to set up a simple monorepo for two npm packages using just what comes with npm and TypeScript.

Dr. Axel Rauschmayer

▶  Code Zelda in JavaScript with Kaboom.js — Ania is back with another fun walkthrough. For your hour this time you get to build the bare bones of a NES-era Zelda game.

Ania Kubów

5 Reasons Not to Write Your JavaScript Data Grid from Scratch — Data grids are essential for every business app. Before you decide to roll your own, learn about these common pitfalls.

Progress Kendo UI for Angular sponsor

Trackball Rotation using Quaternions — How can you implement a 3D ‘trackball’ that you can control with a 2D interface like a typical trackpad? With Trackball.js is how.. but you can attempt to understand the math in this article if you wish.

Robert Eisele

then(f,f) vs then(f).catch(f) — A quick look at the difference between two approaches with promises.

Dmitri Pavlutin

Building a 'Typewriter Animation' That Handles Anything You Throw at It — A thorough dig into what’s involved in creating an interesting frontend effect with JavaScript. The end result looks neat.

Murtuzaali Surti

[Free Workshop] Building an IoT application with InfluxDB — Learn how to develop a JavaScript-enabled time-series-based application using Kafka queues, RabbitMQ and InfluxDB Cloud.

InfluxData sponsor

Creating a Typography Motion Trail Effect with Three.js
George Nikolov

Three Insights I Gained While Researching Vue.js Accessibility
Marcus Herrmann

Building a ‘Table Of Contents’ with Active Indicator using Intersection Observers
Ben Frain

🛠 Code & Tools

Dinero.js: A Library for Working with Monetary Values — Express monetary values and perform mutations, conversions, comparisons, handle formatting, and generally make money manipulation easier. GitHub repo.

Sarah Dayan

Abracadabra: JS and TS Refactoring Tool for VS Code — While VS Code supports some refactoring techniques out of the box, Abracadabra magics up many more including numerous conditional logic changes, inlining, and syntax conversions. It can also suggest ‘quick fixes’ - refactorings that make sense in the current context.

Visual Studio Marketplace

Color: A Color Conversion and Manipulation Library — Immutable color conversion and manipulation with support for CSS color strings.


Clubhouse.io - We Put the Agile in Agile and the 'Can' in Kanban

Clubhouse.io sponsor

Tangram: An Automated Machine Learning Framework — It’s not solely for Ruby – indeed, it’s written in Rust – but you can train a model from a CSV file and then make ‘predictions’ from JavaScript (or Ruby, or Python) code. GitHub repo.


Bulletproof React: An Architecture for React Apps — Using a group chat app as the case study, the author touches on every significant aspect of building and deploying a React application which will make it “bulletproof” and therefore production ready. Note, however: "This is not supposed to be a template or a framework. It is an opinionated guide that shows how to do some things in a certain way."

Alan Alickovic

Color Thief: Grab Color Palettes from Images — Given an image, this uses canvas to return a list of the dominant colors.

Lokesh Dhakar

FZF for JavaScript: Fuzzy Finding for the Browserfzf is a tool written in Go for ‘fuzzy finding’ files but here the idea has been adapted to JavaScript and the Web so it can be used for similar fuzzy finding in webapps.


veux-persistedstate: Persist and Rehydrate Your Vuex State Between Page Reloads
Robin van der Vleuten