---
title: "The unbearable weight of massive JavaScript"
publication: "JavaScript Weekly"
issue: 664
published_at: "2023-11-23"
canonical_url: "https://javascriptweekly.com/issues/664"
---

Plus Kubelka–Munk theory, hating on Medium, and we actually do talk about Bruno. |        

#​664 — November 23, 2023 

[Read on the Web](https://javascriptweekly.com/issues/664)  

Together with [![EdgeDB\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_300,h_136/e_make_transparent/co_white,e_outline:7/jlunqvivvabxwct0nb30.png)](https://edgedb.com/blog/stop-building-auth-start-building-apps-with-edgedb-and-next-js)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/hltjrv09phqutnt6b6ty.jpg)](https://survey.devographics.com/en-US/survey/state-of-js/2023)  

[Time to Take the _State of JavaScript 2023_](https://survey.devographics.com/en-US/survey/state-of-js/2023) — The long standing _State of JavaScript_ survey is back for another run at figuring out what the community is up to and what tools we’re using. The results are always illuminating and we’ll share the tastiest parts once available. 

Devographics   

▶[The Unbearable Weight of Massive JavaScript](https://www.youtube.com/watch?v=f5felHJiACE) — An extensive talk looking at what can be achieved by simplifying web architecture, chiefly by using new or upcoming Web Platform APIs and getting back to building fast, maintainable, user-friendly frontends. [Slidedeck.](https://speakerdeck.com/ryantownsend/the-unbearable-weight-of-massive-javascript-performance-dot-now) 

Ryan Townsend   [![\](https://copm.s3.amazonaws.com/e6c42a2b.png)](https://edgedb.com/blog/stop-building-auth-start-building-apps-with-edgedb-and-next-js) 

[Stop Building Auth, Start Building Apps with EdgeDB + Next.js](https://edgedb.com/blog/stop-building-auth-start-building-apps-with-edgedb-and-next-js) — It’s hard enough to come up with an idea worth trying. See how EdgeDB and our new authentication extension makes it easy to go from idea to working application in record time using Next.js. 

EdgeDB sponsor   

[TypeScript 5.3 Released](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/) — The latest edition of the type-enhanced JavaScript superset is here. The headline feature is full support for the [import attributes proposal](https://github.com/tc39/proposal-import-attributes) (as it currently stands, at stage 3 in TC39), but there are many enhancements around type narrowing, interactive inlay hints for types in editors, and more. Not the biggest update, but progress nonetheless. 

Daniel Rosenwasser (Microsoft)   

[Vite 5.0 Released](https://vitejs.dev/blog/announcing-vite5) — The Vite suite of frontend tooling may have started life in the Vue.js world, but is now used by projects aplenty including SvelteKit, Remix, and Astro. v5 now uses Rollup 4, removes many deprecated features, and requires Node 18+. There’s [a migration guide](https://vitejs.dev/guide/migration.html) to help with your v4 to v5 progression. 

Evan You and Contributors   

**IN BRIEF:** 

- [The Node.js 20.x runtime is now available on AWS Lambda](https://aws.amazon.com/blogs/compute/node-js-20-x-runtime-now-available-in-aws-lambda/).
- 🎁 [A bumper list of dev-related tools & services](https://github.com/trungdq88/Awesome-Black-Friday-Cyber-Monday) running Black Friday deals.
- GitHub looks at [what's new in the latest Git release: Git 2.43](https://github.blog/2023-11-20-highlights-from-git-2-43/).
- [The AWS Amplify team teases 'Gen 2'](https://aws.amazon.com/blogs/mobile/introducing-amplify-gen2/) of their fullstack app platform.   

**RELEASES:** 

- ⭐️ [Transformers.js v2.9](https://github.com/xenova/transformers.js/releases/tag/2.9.0) – State of the art ML in JavaScript. v2.9 adds support for depth estimation, zero-shot object detection, and optical document understanding.
- [Redux Toolkit 2.0 rc.0](https://github.com/reduxjs/redux-toolkit/releases/tag/v2.0.0-rc.0), [Redux 5.0 rc.0](https://github.com/reduxjs/redux/releases/tag/v5.0.0-rc.0), [React-Redux 9.0 rc.0](https://github.com/reduxjs/react-redux/releases/tag/v9.0.0-rc.0) – Initial RCs with better packaging and smaller bundles. Final releases due soon.
- [Bun 1.0.14](https://bun.sh/blog/bun-v1.0.14) – Introduces a high-perf globbing API for matching files and strings.
- [Rspack 0.4](https://www.rspack.dev/blog/announcing-0.4.html) including Rsbuild 0.1 – A fast Rust-based web bundler.
- [Node v21.2.0 (Current)](https://nodejs.org/en/blog/release/v21.2.0) and [Node v20.10.0 (LTS)](https://nodejs.org/en/blog/release/v20.10.0)
- [Starlight 0.13.0](https://starlight.astro.build/) – Beautiful docs sites atop Astro.  

📄 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/us09wuhlgd5zh4grlhce.jpg)](https://www.youtube.com/watch?v=b4HZpv61V1U)  

▶[4 Web Devs, 1 App Idea](https://www.youtube.com/watch?v=b4HZpv61V1U) — Salma Alam-Naylor, Scott Tolinski, and Eve Porcello join Jason Lengstorf to kick off a fun new series where several developers all implement the same type of app, show off how they went about it, _and_ react to each other’s approaches. Svelte, Astro, and Next.js each make an appearance. 

Learn with Jason   

[Promises Training](https://github.com/henriqueinonhe/promises-training) — Practice working with promises through a curated collection of interactive challenges. Aimed at developers with at least an intermediate understanding of promises who want to dig deeper. 

Henrique Inonhe   

[JavaScript Error and Performance Monitoring](https://sentry.io/resources/intro-to-sentry-live-product-tour/?utm_source=javascriptweekly&utm_medium=paid-community&utm_campaign=general-fy24q4-intro-to-sentry&utm_content=newsletter-intro-to-sentry-register) — Track, trace, debug and resolve JavaScript errors across platforms. Are your releases that easy? [Join us live](https://sentry.io/resources/intro-to-sentry-live-product-tour/?utm_source=javascriptweekly&utm_medium=paid-community&utm_campaign=general-fy24q4-intro-to-sentry&utm_content=newsletter-intro-to-sentry-register). 

Sentry sponsor   

[An Attempted Taxonomy of Web Components](https://www.zachleat.com/web/a-taxonomy-of-web-component-types/) — A collection of open-source web components (and lessons learned from using them) that may help you on your journey in this complex, developing space. 

Zach Leatherman   

[Using OpenAI APIs to Analyze Automated Test Failures](https://labs.pineview.io/using-openai-platform-to-analyse-automated-test-failures/) — A look at how to develop a Nightwatch.js plugin which sends the test failure and associated errors to a service that integrates with OpenAI’s platform to analyze said errors and provide actionable feedback. 

Andrei Rusu  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ef7twnut6xgyzqsn2tcq.jpg)](https://www.usebruno.com/)  

[Bruno: An Open-Source HTTP API Exploration App](https://www.usebruno.com/) — There are a lot of ‘API client’ tools like this, commercial and non-commercial, with varying levels of features, but this is an open source one entirely built in JavaScript with a fully-offline ethos some might appreciate. [GitHub repo.](https://github.com/usebruno/bruno) 

Anoop M D, Anusree P S and Contributors   

[debounce 2.0: Delay Function Calls Until a Set Time Elapses](https://github.com/sindresorhus/debounce) — If you don’t want something to run _too_ often, _debouncing_ is the strategy for you and this library makes it simple. v2 adds types and brings the code up to modern standards. 

Sindre Sorhus et al.   

[Level Up Your UX With Bryntum](https://bryntum.com/?utm_source=newsletter&utm_medium=email&utm_id=jsweekly-link-20231123) — Empower your users with advanced widgets like data grids, calendars, schedulers, and Gantt charts. 

Bryntum sponsor   

[H3: A Minimal HTTP Framework for Multiple JS Platforms](https://github.com/unjs/h3) — Aims to be as universal as possible and works across numerous platforms, including Node, while offering the basic HTTP framework features and a compatibility layer with Express middleware. [v1.9](https://github.com/unjs/h3/releases/tag/v1.9.0) just landed. 

UnJS   

[request-animation-frames: Use `requestAnimationFrame` Anywhere](https://github.com/sindresorhus/request-animation-frames) — The latest library from the one-man module powerhouse, Sindre Sorhus. The idea this time is to allow you to use `requestAnimationFrame` in _any_ JavaScript environment. [The implementation](https://github.com/sindresorhus/request-animation-frames/blob/main/index.js) is delightfully simple. 

Sindre Sorhus   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bopohlabvspbxft1mvxt.jpg)](https://github.com/rvanwijnen/spectral.js)  

[Spectral.js: A More 'Paint-Like' Color Mixing Library](https://github.com/rvanwijnen/spectral.js) — If you have two colors to transition between, just tweening the RGB values can result in some rather ugly intermediate colors. Spectral.js uses [Kubelka–Munk theory](https://en.wikipedia.org/wiki/Kubelka%E2%80%93Munk_theory) which more closely matches how paints work for a visually satisfying result. 

Ronald van Wijnen   

['A Node + TypeScript + ts-node + ESM Experience That Works'](https://gist.github.com/khalidx/1c670478427cc0691bda00a80208c8cc) — It’s just three files: `package.json`, `tsconfig.json` and a utilities file. 

Khalid Zoabi   

[A Non-Cloud Alternative to Google Forms That Has It All](https://surveyjs.io/?utm_source=jsweekly&utm_medium=email) 

SURVEYJS sponsor   

[🖼 medium-zoom 1.1: A Library for Medium-Style Image Zooming](https://github.com/francoischalifour/medium-zoom) — Responsive, can load a higher definition version of an image on zoom, and mouse, keyboard and gesture friendly. Now we just need a library that can cover up the bottom half of a page with junk like Medium also does now. [Demo](https://medium-zoom.francoischalifour.com/). 

François Chalifour   

- [gridstack.js 10.0](https://gridstackjs.com/) – Build interactive dashboard panels quickly.
- [MQTT.js 5.3](https://github.com/mqttjs/MQTT.js/releases/tag/v5.3.0) – MQTT client for Node and browser.
- [Piscina 4.2](https://github.com/piscinajs/piscina) – Node.js worker thread pool implementation.
- [(Official) MongoDB Node.js Driver 6.3](https://github.com/mongodb/node-mongodb-native/releases/tag/v6.3.0)
- [SQL Formatter 14.0](https://github.com/sql-formatter-org/sql-formatter) – Pretty print SQL queries.    

Job Listing  

[Full Stack TypeScript Software Engineer - [Remote Europe\]](https://marker.io/jobs?utm_source=jsweekly&utm_medium=email&utm_campaign=job_listing&utm_content=typescript_dev) — [Marker.io](https://marker.io/) is a visual bug-reporting tool for the web. Join our dev team and work remotely (Stack: Node.js, Vue.js & MongoDB). 
Marker.io      

**_NOTABLE QUOTABLE_**  

“Programming isn't about what you know; it's about what you can figure out.” 

___
Chris Pine (author of Learn to Program)     

P.S. Medium is 🗑️. If you don't want to host your own blog, try [Hashnode](https://hashnode.com/), [dev.to](https://dev.to/), [Bear](https://bearblog.dev/), or even throw Markdown at GitHub Gists – it'll provide a better reader experience _and_ we'll be more likely to link to it.         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
