CommonJS, we love you, we love you not..

#​646 — July 6, 2023

Read on the Web

JavaScript Weekly

What’s Next for JavaScript: New Features to Look Forward to — A reassuring and high level look at just what goes into making JavaScript better over time, along with some of the new things about to appear or still making their way through the arduous TC39 process.

Mary Branscombe (The New Stack)

Mary has followed up this piece with Beyond Browsers: The Longterm Future of JavaScript Standards which goes into more depth on JavaScript’s ongoing developments in the world of servers and edge functions.

🎥  Remotion v4.0: Create Videos Using React — A powerful framework for creating videos from code using React and JavaScript. v4 is such a big update they ▶️ recorded a keynote to show it off.

Jonny Burger

A Brief Primer to Engineering Efficiency — Software teams are dealing with many changes and budget cuts, yet still have the same delivery expectations. So, how do you keep up? 🤔 The answer: invest in efficiency. Get ahead of the game with this brief on engineering efficiency.

Sleuth sponsor

‘CommonJS is Hurting JavaScript’ — An interesting take on Node’s default module system, its history, its shortcomings, and the trickiness of managing both CommonJS and ES modules at once. It’s perhaps no surprise the folks at Deno would like to see CommonJS disappear, but…

Andy Jiang (Deno)

.. the Bun team, on the other hand, say au contraire and tell us CommonJS is not going away! They explain CommonJS’s plus points and why Bun is adding support for it.


TypeScript 5.2 Beta – Just a month after the final release of 5.1, too. using is the headline feature and the release post goes into fantastic detail.

Node.js v20.4.0 (Current) – Node gains an interesting new ‘mock timers’ feature for writing more reliable and deterministic tests for time-dependent functionality.

Vite 4.4 – The frontend toolkit updates to esbuild 0.18, adds experimental Lightning CSS support, and there are new starter templates for Solid and Qwik users.

Billboard.js 3.9 – A popular D3-based chart library. (Demos.)

Deno 1.35 – The alternative JS runtime makes Deno.serve() (its Web server API) stable, and improves npm and Node compatibility.

Bun 0.6.13


Jack Herrington sat down with Redux and Redux Toolkit’s maintainer, Mark Erikson, to ▶️ discuss what’s next for Redux and Redux Toolkit?

🎵 Spotify has introduced a TypeScript SDK for its Web API.

A little update from the Svelte team on the complete overhaul of their official site, hot on the heels of Svelte 4.0’s release. It’s a great time to be a Svelte developer.

The folks at Img․ly released the code for a system that can remove the backgrounds of images directly in the browsermore info.

📒 Articles & Tutorials

In Defence of DOMContentLoaded — A solid explainer on measuring browser events and the use cases for DOMContentLoaded (and related events) in particular. “The DOMContentLoaded event fires once all of your deferred JavaScript has finished running.”

Harry Roberts

Breaking Up with SVG-in-JS in 2023“SVGs in JS have a cost and SVGs do not belong into your JS bundle.” A look into why you shouldn’t have SVGs in your JS bundle and better techniques for using them from JSX.

Jacob Groß

Move from Datadog to Axiom with Our New Migration App — Logging reimagined means Axiom’s plans start at $25/mo for 1tb of data. Stop sampling, get Axiom.

Axiom sponsor

An Introduction to the View Transitions API — The experimental View Transitions API offers an easier way to animate between DOM states and even between page loads. Here’s a look at how to use this progressive enhancement.

Craig Buckler

JavaScript Gom Jabbar — In the Dune universe, a “gom jabbar” is a poisonous needle used in an eponymous test where people are subjected to intense pain. Somehow this is turned into a metaphor for painful JavaScript experiences.. 😏

Alex Kotliarskyi

▶  The JavaScript Hype Cycle and React Burnout — Aaron’s idea? Pick something that works for you, avoid the hype cycle, and, perhaps, don’t use things that aren’t at least a year old.

Aaron Francis

📅 That ‘year old’ thing is an interesting idea. We should introduce a section where we look back at things from a year ago and if they’re still going.. 😅

How to Consume a Paginated API using Async Generators

James Sinclair

🛠 Code & Tools

MathLive: A Web Component for Math Input — A web component that provides an interface for editing formulas. It uses LaTeX-style typesetting to keep things looking good. GitHub repo.

Arno Gourdol

Starlight: A Documentation Site Builder from Astro — React has Docusaurus, now Astro has Starlight. Being Astro, it’s framework agnostic and you can extend it with React, Vue, Svelte, Solid, etc. You get site navigation, search, internationalization, code highlighting, dark mode, and more out of the box. GitHub repo.


Monitor, Test and Debug your APIs with APIToolkit

APIToolkit sponsor

mdsvex: A Markdown Preprocessor for Svelte — The homepage is a minimal, but cute, demonstration, but the docs are where the meat is.


rrule.js: Work with Recurrence Rules for Calendar Dates — iCalendar is a data format for representing calendars and schedules, and RRULE is its way to define recurring events. rrule.js allows you to work with such rules, and has an amazing ‘playground’ style homepage to show it off.

Jakub Roztocil

copy-text-to-clipboard: Copy Text to Clipboard in Modern Browsers — Pretty simple but will save you a little messing around with the browser API.

Sindre Sorhus

TinyBase 4.0
↳ Reactive data store for local‑first apps.

Cross Fetch 4.0
↳ Universal WHATWG Fetch API for Node, browsers and React Native.

Sortable 2.2
↳ Makes any table with class=”sortable” sortable.

Escodegen 2.1
↳ AST to ECMAScript code generator.

💻 Jobs

Find JavaScript Jobs with Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.


🧑‍💻 Got a job listing to share? Here’s how.

🎁 And one for luck..

Joplin: An Open Source Note Taking and To-Do App — Essentially an open source Evernote, complete with numerous client apps (desktop and mobile) and a server side supporting synchronization across cloud services. GitHub repo.

Laurent Cozic