---
title: "What's new for us in ECMAScript 2024"
publication: "JavaScript Weekly"
issue: 698
published_at: "2024-07-25"
canonical_url: "https://javascriptweekly.com/issues/698"
---

Plus a way to reduce 'fetch' boilerplate, what broke Node v22.5, and Astro previews Server Islands. |        

#​698 — July 25, 2024 

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

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/courses/intermediate-next-js/?utm_source=email&utm_medium=javascriptweekly&utm_content=nextjs)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/p901mljtf1qp8vtaxf3e.jpg)](https://astro.build/blog/astro-4120/)  

[Astro 4.12: Say Hello to Server Islands](https://astro.build/blog/astro-4120/) — The flexible [Astro](https://astro.build/) framework for building modern content-based sites continues to go from strength to strength. v4.12 includes a new concept of _server islands_, a way to integrate static HTML and _server-side generated_ components together. 

Erika and Phillips (Astro)   

[What’s New for JavaScript Developers in ECMAScript 2024](https://thenewstack.io/whats-new-for-javascript-developers-in-ecmascript-2024/) — High level analysis of developments in the ECMAScript spec, with insights from Ecma vice president Daniel Ehrenberg, TC39 co-chair Rob Palmer, and developer Ashley Claymore. A good, thorough roundup of the state of play. 

Mary Branscombe (The New Stack)   

💡 If you want to go a step further with what's coming up _next_, Igalia presents [a summary of the recent TC39 meeting in Helsinki](https://blogs.igalia.com/compilers/2024/07/18/summary-of-the-june-2024-tc39-plenary-in-helsinki/) with which language proposals were advanced and discussed.  [![\](https://copm.s3.amazonaws.com/8f98ee7d.png)](https://frontendmasters.com/courses/intermediate-next-js/?utm_source=email&utm_medium=javascriptweekly&utm_content=nextjs) 

[Level Up Your Next.js Skills](https://frontendmasters.com/courses/intermediate-next-js/?utm_source=email&utm_medium=javascriptweekly&utm_content=nextjs) — Join Scott Moss for this detailed video course on intermediate Next.js. Learn how to build production-ready apps by diving into concepts such as server actions, data fetching, protected routes, form authentication, performance caching, and more. 

Frontend Masters sponsor   

[A Post Mortem of What Broke Node v22.5.0](https://github.com/nodejs/node/pull/53934) — Node's _‘Current’_ [release line](https://nodesource.com/blog/understanding-how-node-js-release-lines-work/) gives access to the latest Node has to offer, at the risk of encountering troublesome bugs too – v22.5 included two, alas, with [Node v22.5.1](https://nodejs.org/en/blog/release/v22.5.1) quickly following to resolve them. 

Yagiz Nizipli et al.   

**IN BRIEF:** 

- Rich Harris provides [some details about the forthcoming Svelte 5](https://thenewstack.io/youll-write-less-code-with-svelte-5-0-promises-rich-harris/) and shares his opinions on React Server Components (he thinks they're _"pretty phenomenal"_).
- Node.js has added [an experimental feature to strip TypeScript types](https://github.com/nodejs/node/pull/53725) from the code it runs.
- 📊 The [results of the State of React 2023 survey](https://2023.stateofreact.com/en-US/) have been released including insights from over 13,000 respondents, as have the [results of Stack Overflow's 2024 developer survey](https://survey.stackoverflow.co/2024/).   

**RELEASES:** 

- [Mikro ORM 6.3](https://mikro-orm.io/blog/mikro-orm-6-3-released) – Popular ORM for Node.js and TypeScript, now with an optional 'schema-first' approach.
- [Uppy 4.0](https://uppy.io/blog/uppy-4.0/) – Powerful, modular JavaScript file uploader.
- [Preact 10.23](https://github.com/preactjs/preact/releases/tag/10.23.0) – The 3KB React compatible alternative.
- [Node.js v20.16.0 (LTS)](https://nodejs.org/en/blog/release/v20.16.0), [Storybook 8.2](https://storybook.js.org/blog/storybook-8-2/), [pnpm 9.6](https://github.com/pnpm/pnpm/releases/tag/v9.6.0), [Meteor.js 3](https://meteorjs.medium.com/meteor-js-3-is-officially-here-0ea5ede8c533)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zkldxjhtnzo61h38z6dt.jpg)](https://dgerrells.com/blog/how-not-to-use-box-shadows)  

[So You Think You Know Box Shadows?](https://dgerrells.com/blog/how-not-to-use-box-shadows) — The author indulges his creative side with some fun experiments into what he calls _“some of the worst possible things”_ you can do with box shadows on a DIV element, coupled with JavaScript. 

David Gerrells   

▶[Don't Use JS for That: Moving Features to CSS and HTML](https://www.youtube.com/watch?v=IP_rtWEMR0o) — Packed with code and examples. Some techniques aren’t universally supported yet, but there’s a lot that the browser can offer that you don’t need to reimplement yourself, like color picking, modals, and animations. 

Kilian Valkhof   

[😘 Kiss Bugs Goodbye](https://www.qawolf.com/?utm_campaign=KissBugsGoodbye07252024&utm_source=jsweekly&utm_medium=newsletter) — Get 80% automated E2E test coverage in just 4 months with [QA Wolf](https://www.qawolf.com/?utm_campaign=KissBugsGoodbye07252024&utm_source=jsweekly&utm_medium=newsletter). With QA cycles complete in minutes (not days), bugs don’t stand a chance. [Schedule a demo](https://www.qawolf.com/?utm_campaign=KissBugsGoodbye07252024&utm_source=jsweekly&utm_medium=newsletter). 

QA Wolf sponsor   

[How to Choose the Best Rendering Strategy for Your App](https://vercel.com/blog/how-to-choose-the-best-rendering-strategy-for-your-app) — The differences between Static Site Generation (SSG), Server-Side Rendering (SSR), Client-Side Rendering (CSR), Incremental Static Regeneration (ISR), and Partial Prerendering (PPR). 

Alice Alexandra Moore (Vercel)   

[A Practical Guide to Not Blocking the Event Loop](https://www.bbss.dev/posts/eventloop/) — A look at the core principles of synchronous and asynchronous work in a single-threaded environment, stressing the importance of non-blocking code for efficient event loop utilization. 

Slava Knyazev   

[Why is Spawning a New Process in Node So Slow?](https://blog.val.town/blog/node-spawn-performance/) — The developers of the [Val Town](https://www.val.town/) platform noticed that Node couldn’t spawn more than 40 external processes per second, whereas Deno and Bun could do a _lot_more.. 

Max McDonnell   

[Debugging Your Node.js Project with Sentry](https://sentry.io/resources/debugging-your-nodejs-project/?utm_medium=paid-community&utm_source=javascriptweekly&utm_campaign=fy25q2-nodejsworkshop&utm_content=newsletter-nodeworkshop-register) — Join us live today to learn all the basics to monitoring and debugging your Node.js projects with Sentry. 

Sentry sponsor   

📺 [How to Engineer Your Developer Blog Posts to Have Bigger Impact](https://www.youtube.com/watch?v=UhDkARpmBGU) – From a Postgres community perspective, but the advice is universal and well explained. Claire Giordano 

📄 [Bring Your Own API Key: Supporting User-Provided OpenAI Keys and Prompts in Browser Extensions](https://www.xiegerts.com/post/browser-extension-genai-key-prompts/) Stephen Siegert 

📄 [How to Review Code Effectively: A GitHub Staff Engineer’s Philosophy](https://github.blog/developer-skills/github/how-to-review-code-effectively-a-github-staff-engineers-philosophy/) Sarah Vessels (GitHub) 

📄 [How Airbnb Smoothly Upgrades React](https://medium.com/airbnb-engineering/how-airbnb-smoothly-upgrades-react-b1d772a565fd) – It was no small task. Andre Wiggins (Airbnb)  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/isppkanjvssu9j82weus.jpg)](https://github.com/sindresorhus/ky)  

[Ky: Tiny, Elegant Fetch-Based HTTP Client for Browsers](https://github.com/sindresorhus/ky) — Makes the Fetch API tidier to use [as shown here](https://github.com/sindresorhus/ky#user-content-usage). If you want to tighten up your `fetch` calls, it's worth a look. 

Sindre Sorhus   

[React Native Filament: A 3D Rendering Engine for React Native](https://margelo.github.io/react-native-filament/) — Fast, native 3D rendering with a React touch. Rendering takes place on a separate thread for efficiency. [GitHub repo](https://github.com/margelo/react-native-filament) and [pretty good docs, too.](https://margelo.github.io/react-native-filament/docs/guides/camera) 

Marc Rousavy   

[Tests Are Dead. Meticulous Is Here](https://www.meticulous.ai?utm_source=javascript_weekly&utm_campaign=july25th) — Automatically creates & maintains e2e UI tests. Zero flakes. Backed by YC, CTO of GitHub, CPO of Adobe, CEO of Vercel. 

Meticulous sponsor   

[Git Granary: A Personal Git LFS Server](https://dbushell.com/2024/07/25/git-granary/) — A Deno-powered (but can run under Bun and Node) Git Large File Storage (LFS) server implementation written in TypeScript for self-hosted personal use cases. 

David Bushell   

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

[litegraph.js: A Graph Node Engine and Editor](https://github.com/jagenjo/litegraph.js) — Useful if you need to create a system for users to create and manipulate graphs or interconnecting ‘nodes’ for things like graphics, audio or data pipelines. [Demo.](https://tamats.com/projects/litegraph/editor/) 

Javi Agenjo   

- 🤖 [OpenAI Node v4.53.0](https://github.com/openai/openai-node/releases/tag/v4.53.0) – The official Node library for OpenAI's API adds support for their newest `gpt-4o-mini`model.
- [Rollup 4.19](https://github.com/rollup/rollup/releases/tag/v4.19.0) – The ES module bundler gains support for decorators.
- [eslint-plugin-unicorn 55.0](https://github.com/sindresorhus/eslint-plugin-unicorn) – 100+ useful ESLint rules in one place.
- [eslint-plugin-promise 7.0](https://github.com/eslint-community/eslint-plugin-promise) – Enforce best practices for promises.
- [pretty-ms 9.1](https://github.com/sindresorhus/pretty-ms) – Convert milliseconds to a human readable string.
- [Tinybase 5.1](https://github.com/tinyplex/tinybase) – Powerful reactive data store for local‑first apps.
- [MiniSearch 7.1](https://github.com/lucaong/minisearch) – In-memory fulltext search engine. ([Demo](https://lucaong.github.io/minisearch/demo/).)
- [swup 4.7](https://swup.js.org/) – Page transition library for server-rendered sites.
- [Jasmine 5.2](https://github.com/jasmine/jasmine/blob/main/release_notes/5.2.0.md) – Testing framework for browsers & Node.         

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
