#​617 — December 2, 2022

Read on the Web

JavaScript Weekly

Speeding Up the JS Ecosystem, One Library at a Time — The JavaScript ecosystem is so reliant upon dependencies that there’s a lot of opportunity to speed up swathes of projects by fixing the smallest of inefficiencies. Here, one of Preact’s developers shares how he’s been discovering such low hanging, yet hidden, fruit. Learning these techniques will take you far.

Marvin Hagemeister

AppSignal for Node.js 3.0 Introduces OpenTelemetry Support — AppSignal now supports OpenTelemetry, the open-source standard for telemetry data collection. We’ve also added support for 6 new integrations in this release.

AppSignal sponsor

Electron News: 22.0 Released, Bye Windows 7, and Hi Forge — The long standing cross platform desktop framework continues to evolve. v22 jumps up to Chromium 108 and Node 16.17.1. The UtilityProcess API is a new feature. There are also some other Electron related updates to be aware of:

The end of support for Windows 7, 8, and 8.1 as of Electron 23. v22 is the final version to support Windows < 10.

Electron Forge 6 has been released. Forge is an official tool for packaging and distributing Electron apps. 6.0 is a total rewrite and now considered the official ‘batteries included build pipeline’ for Electron apps.

OpenJS Foundation


🎄 Like puzzles? This year’s Advent of Code has begun.

📅 There’s an online Rust for JavaScript Developers workshop taking place on December 14 where you’ll see an Express.js app rewritten into Rust. It’s free but I imagine there’s a limit to numbers.

If you’re eagerly awaiting TypeScript 5, there’s a TypeScript 5.0 ‘iteration plan.’

The Storybook project (a popular component workshop/dev tool) has shared an update on a new API designed to make support for things like Vite, Next.js, Svelte, Remix and Nuxt easier to roll out in 2023. “Zero-config support for any framework,” as they put it.


Tesseract.js 4.0
↳ Pure JS OCR for more than 100 languages.

Superagent 8.0.4
↳ Popular HTTP client API.

Prisma 4.7
↳ Next-gen ORM for Node.js and TypeScript.

Lerna 6.1
↳ Build & publish multiple packages from the same repo.

Node.js 19.2.0 (Current)

📒 Articles & Tutorials

Splitting Strings into Sentences, Words or Graphemes with Intl.Segmenter — No libraries needed here. Give Intl.Segmenter a locale and granularity and it’ll divide up your strings to your heart’s content. It has wide support except for, curiously, Firefox.

Stefan Judis

Migrating from Vue 2 to Svelte — After two years of Vue 2, a team had a decision to make: move to Vue 3 or give Svelte a try?

Sophie Boulaaouli (Escape)

Breakpoints and console.log Is the Past, Time Travel Is the Future — 15x faster JavaScript debugging than with breakpoints and console.log, now with support for Vitest.

Wallaby.js sponsor

Working with Zustand for Easier React State Management — Some tips for using Zustand, a relatively minimal state management library with a lot of enthusiastic users.


V8: Pointer Compression in Oilpan — This is barely about JS but shows off the low level optimizations the V8 team makes to make JavaScript more efficient for us. This time it’s about using smaller pointers, because who needs 64 bits for a small app?

Bikineev and Lippautz (V8 Team)

Sketchy Pencil Effect with Three.js Post-Processing — 3D development always gets my head spinning a bit, but the sketched pencil effect here is compelling and unique.

Maya Nedeljković Batić

The State of Notifications Report – User Preferences

Courier.com sponsor

On Building a New JS Linting Experience for Visual Studio

Maria Solano (Microsoft)

Testing Static Types in TypeScript

Dr. Axel Rauschmayer

🛠 Code & Tools

Neutralino.js 4.9: Lightweight Cross Platform Desktop App Framework — Think Electron but with a rather different approach: no embedded Chromium, no embedded Node.. it uses the system’s existing Web browser APIs. This has its pros and cons, of course. v4.9 adds a new API for writing custom backend code in any language (that can communicate over a WebSocket). Official homepage.


Mithril.js: Client-Side Framework for Single Page Apps — A neat alternative to things like Vue, React or Angular. It’s been around for years and deserves more attention we feel. Mithril is compact, fast, and runs closer to vanilla JS than the alternatives so is well suited for bringing together vanilla JS libraries. Want to compare it to $your_favorite_framework? Here you go.


A Professional Scheduling Component for React, Vue, Angular Apps — Schedule doctors, machines or your next trip to Mars. Easily done with the Scheduler Pro widget. Free 45-day trial.

Bryntum sponsor

Vanilla Extract: Zero-Runtime Stylesheets in TypeScript — Using TypeScript as a preprocessor, you can use this framework agnostic approach to write type-safe, static CSS. Not my cup of tea, but the homepage does a good job on selling the idea.


Choices.js 10.2: A Configurable Select Box/Text Input Plugin — Lots of examples or you can go straight to the GitHub repo.

Josh Johnson

Reapop 4.2: Customizable Notifications for React Apps — This project’s homepage is a big self demo. Keep clicking on “Random notification” to fill your view. GitHub repo.

Louis Barranqueiro

💻 Jobs

Software Engineer — Join our “kick ass” team. Our software team operates from 17 countries and we’re always looking for more exceptional engineers.


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.


jsdoc-to-markdown 8.0
↳ Generate Markdown from JSDoc-annotated JS.

<relative-time> 4.0
↳ GitHub’s Web Component extension to <time>

Bootbox.js 6.0
↳ Bootstrap alert, confirm & modal wrappers.

Minimatch 5.1.1
↳ Glob matcher library, as used in npm.
    minimatch(“bar.foo”, “*.foo”)

🎸 SVGuitar 2.2 – SVG guitar chord rendering.

TWGL.js 5.3 – WebGL, but less verbose.

React Tabs 6.0 – Accessible tab component.

OCLIF 3.3 – Node.js CLI framework.