---
title: "ECMAScript 2023 for President"
publication: "JavaScript Weekly"
issue: 627
published_at: "2023-02-24"
canonical_url: "https://javascriptweekly.com/issues/627"
---

Plus the state of Node.js, what to expect from Vue in 2023, and JavaScript-powered musical fun. |        

#​627 — February 24, 2023 

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

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/background-javascript/?utm_source=javascriptweekly&utm_medium=email&utm_content=backgroundjs)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/q5enb5o55iwrllzr5r42.jpg)](https://strudel.tidalcycles.org/)  

🎵 [Strudel REPL: Live JavaScript Music in the Browser](https://strudel.tidalcycles.org/) — This is a lot of fun. It’s a little online sandbox for putting together small musical experiments written in JavaScript. Use the ‘shuffle’ button at the top right until you find something you like the sound of. There’s [a tutorial](https://strudel.tidalcycles.org/learn/getting-started) on building your own, too. If you make any good ones, send them in to us and we might link to them. 

Felix Roos et al.   

[The ECMAScript 2023 Language Specification](https://tc39.es/ecma262/) — It’s that time of the year again. The latest ECMAScript spec, which standardizes what we know as JavaScript to some extent, is now in draft. This is not bedtime reading, of course, but is a fundamental part of what makes the language tick. 

ECMA International   

💡 If you do decide to brave the spec, [this guide on 'how to read the ECMAScript specification'](https://timothygu.me/es-howto/) will get you on the right path.  [![\](https://copm.s3.amazonaws.com/933bda85.png)](https://frontendmasters.com/courses/background-javascript/?utm_source=javascriptweekly&utm_medium=email&utm_content=backgroundjs) 

[Understand JavaScript in the Background](https://frontendmasters.com/courses/background-javascript/?utm_source=javascriptweekly&utm_medium=email&utm_content=backgroundjs) — Learn what happens to your JavaScript when the user closes their browser and how to detect these changes to execute code later. Plus learn the new Web Push API to give your web app new powers! 

Frontend Masters sponsor    

[Let's Build a Chrome Extension That Steals Everything](https://mattfrisbie.substack.com/p/spy-chrome-extension) — Indulging in what they call “DIY whole hog data exfiltration”, Matt, the author of [Building Browser Extensions](https://www.buildingbrowserextensions.com/) demonstrates that in spite of Manifest v3, a whole lot of bad stuff is still possible when it comes to building browser extensions. Be aware of it and don’t actually _do_ it, of course. 

Matt Frisbie   

[What to Expect from Vue in 2023](https://thenewstack.io/vue-2023/) — Vue.js creator Evan You explains how Vue 3 is different from Vue 2, and in particular how its use of the Virtual DOM has evolved. 

Richard MacManus (The New Stack)   

**IN BRIEF:** 

- [Node.js 19.7.0 (Current)](https://nodejs.org/en/blog/release/v19.7.0/) landed this week complete with npm 9.5, a new URL parser called Ada _and_ (experimental) support for [packing up Node apps into a single distributable executable.](https://nodejs.org/api/single-executable-applications.html)
- Colin Ihrig of the Node.js core team gave a [▶️ 'State of Node.js Core' presentation](https://www.youtube.com/watch?v=OIrGEgMwPvc) earlier this week.
- A look at how Storybook 7 has [significantly revamped Storybook Docs.](https://storybook.js.org/blog/storybook-7-docs/) This is a great way to show UI components off.   

**RELEASES:** 

- [Next.js 13.2](https://nextjs.org/blog/next-13-2)
- [Turborepo 1.8](https://turbo.build/blog/turbo-1-8-0)
 ↳ Rust-powered build system for JS/TS.
- [Mermaid 10.0](https://github.com/mermaid-js/mermaid/releases/tag/v10.0.0)
 ↳ The popular text to diagram rendering toolkit goes ESM only.
- [Node.js 18.14.2 (LTS)](https://nodejs.org/en/blog/release/v18.14.2/)
- [Preact 10.13](https://github.com/preactjs/preact/releases/tag/10.13.0)
- [Angular 15.2](https://github.com/angular/angular/releases/tag/15.2.0)  

📒 Articles & Tutorials  

[Sandboxing JavaScript Code](https://healeycodes.com/sandboxing-javascript-code) — [Val Town](https://www.val.town/) is an interesting, rather minimalist platform for running JavaScript in the cloud, and if you’re going to let folks run JavaScript on _your_ server, good sandboxing is a must. 

Andrew Healey   

[An Intro to 'HTML-First' Frontend Frameworks](https://www.sitepen.com/blog/intro-to-html-first-frontend-frameworks) — The post defines HTML-first front-end frameworks as ones that prioritize sending complete functional HTML versus a JavaScript bundle and looks at some of the different approaches taken by different frameworks/tools like Qwik, Marko, Astro, Eleventy, Fresh and Enhance. 

SitePen Engineering   

▶[Astro 2.0, Island Architecture, and React with Fred K. Schott](https://www.whiskeywebandwhatnot.fm/astro-20-island-architecture-and-react-with-fred-k-schott/) — Fred talks with us about how Astro uses an HTML-first approach to create content-focused websites and new Astro v2 features. 

Whiskey Web and Whatnot sponsorpodcast   

▶[NPM Library Speedrun - 90 Minutes to Build, CI & Publish](https://www.youtube.com/watch?v=aKTSC4D1GL8) — You _could_ throw a bare project up on npm in a few minutes, but it’s fun watching Matt do it with testing, CI, TypeScript, writing a README and building something useful. _(He starts [around 17-minutes](https://youtu.be/aKTSC4D1GL8?t=1026) into the video.)_ 

Matt Pocock   

[You Don't Need _Ruby on Rails_ to Start Using _Hotwire_](https://www.akshaykhot.com/using-hotwire-without-rails/) — [Hotwire](https://hotwired.dev/), an ‘HTML over the wire’ approach to making Web pages more dynamic ([explained here](https://www.akshaykhot.com/introduction-to-hotwire/)), is closely tied to the Ruby on Rails framework, but you can use it to add dynamism to a static site with no Ruby in sight, as demonstrated here. 

Akshay Khot   

[Performance Analysis of Type-Driven Data Validation Libraries](https://dev.to/nicklucas/typescript-runtime-validators-and-dx-a-type-checking-performance-analysis-of-zodsuperstructyuptypebox-5416) — The author’s tRPC/React project was getting sluggish and after some investigation he narrowed it down to [Zod](https://zod.dev/) and decided to benchmark it against Superstruct, Yup, Light-Type and Typebox. 

Nick Lucas   

[Why 2023 is the Time to Migrate from AngularJS to Angular](https://pretius.com/blog/angularjs-upgrade/) — [AngularJS went EOL a year ago](https://blog.angular.io/discontinued-long-term-support-for-angularjs-cc066b82e65a) so hopefully this is old news.. 

Bartosz and Łukasz   

[Migrating from Enzyme to React Testing Library](https://blog.sentry.io/2023/02/23/sentrys-frontend-tests-migrating-from-enzyme-to-react-testing-library/) 
Priscila Oliveria and Scott Cooper (Sentry)   

[Building a Lightbox with the `<dialog>` Element](https://polypane.app/blog/building-a-lightbox-with-the-dialog-element/) 
Polypane  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/fdk0lwn9edz3ircfcnla.jpg)](https://github.com/epicmaxco/vuestic-ui)  

[Vuestic 1.6: An Open Source UI Library for Vue 3](https://github.com/epicmaxco/vuestic-ui) — A library of more than 50 customizable components. [v1.6](https://github.com/epicmaxco/vuestic-ui/releases/tag/v1.6.0) is a big release focused on Tailwind CSS and Nuxt support. [Official homepage.](https://vuestic.dev/) 

Epicmax   

[React Libraries for 2023](https://www.robinwieruch.de/react-libraries/) — The React ecosystem is so large that it's helpful to be presented with some sound, standard options when selecting libraries for a new project. This is the latest annual update of an established list Robin maintains. 

Robin Wieruch   

[Build Business Software 10x Faster with Retool](https://retool.com/?utm_source=sponsor&utm_medium=newsletter&utm_campaign=javascriptweekly) — Trusted by Amazon and Plaid. Try it for free (up to 5 users) or get $25,000 in credits for paid plans if you're an early-stage startup. 

Retool sponsor   

[Kobalte: A UI Toolkit for SolidJS](https://kobalte.dev/docs/core/overview/introduction) — The components are unstyled and follow WAI-ARIA authoring practices. You also have granular access to each component part, allowing you to add event listeners, props, etc. [GitHub repo.](https://github.com/kobaltedev/kobalte) 

Kobalte   

[Urban Bot 1.0: React-Based Universal Chatbot Library](https://urban-bot.vercel.app/) — Rather than messing around with the APIs for Telegram, Discord, Slack or Facebok Messenger, write React components instead and get chatbot functionality on each. 

Urban Bot   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lgvbrqzb8hhqcezeszq2.jpg)](https://github.com/dabeng/OrgChart)  

- [OrgChart 3.5](https://github.com/dabeng/OrgChart) ⌃
 ↳ Render org charts. ([Lots of demos.](https://dabeng.github.io/OrgChart/))
- [Sortable 2.0](https://github.com/tofsjonas/sortable)
 ↳ Make tables sortable with `class="sortable"`
- [Ruby2JS 5.1](https://github.com/ruby2js/ruby2js)
 ↳ Ruby to JavaScript transpiler.   

[Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut](https://shortcut.com/?utm_source=cooperJSWeekly&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=fourletter) 

Shortcut (formerly Clubhouse.io) sponsor   

- [RxDB 14.1](https://github.com/pubkey/rxdb)
 ↳ Offline-first, reactive database for JS apps.
- [tRPC 10.12](https://github.com/trpc/trpc)
 ↳ End-to-end typesafe APIs made easy.
- [JavaScript Charting 3.4](https://jscharting.com/blog/whatsnew-version-34/)
- [OpenPGP.js 5.7](https://github.com/openpgpjs/openpgpjs/releases/tag/v5.7.0)
- [React Testing Library 14.0](https://github.com/testing-library/react-testing-library)
- [Ember.js 4.11](https://github.com/emberjs/ember.js/releases/tag/v4.11.0)    

💻 Jobs  

[Software Engineer](https://jobs.ashbyhq.com/stickermule/1539721e-7c7d-4f45-a5b0-17e5c02d7bd0?utm_source=Cooperpress) — Join our happy team. Stimulus is a social platform started by Sticker Mule to show what's possible if your mission is to increase human happiness. 
Stimulus   

[Find JavaScript Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired    

👀 Elsewhere This Week  

Did you know we have several other newsletters we publish each week? We thought we'd do a quick roundup of what's going on with each of them in case they're of interest to you: 

**REACT:** In [this week's _React Status_](https://react.statuscode.com/issues/327) we wondered if 'React is the new IBM', got to build a word scrambling game, and detected unnecessarily mounted React components. 

**POSTGRES:** In [this week's _Postgres Weekly_](https://postgresweekly.com/issues/494) we learnt how to create Mermaid diagrams from SQL, create type constraints at the database level, and found out what the real 'billion dollar mistake' is. It's not nulls! 

**FRONTEND:** In [this week's _Frontend Focus_](https://frontendfoc.us/issues/581) we focused on iOS and iPadOS's forthcoming Web Push API support, creating accessible carousels, and a surprisingly easy way to create a 'dark mode' theme for your site. 

**NODE.JS:** In [this week's _Node Weekly_](https://nodeweekly.com/issues/475) we discovered two new ways to make type-safe MongoDB queries, and found a way to have Node play endless clicker games on your behalf. 

**RUBY:** In [this week's _Ruby Weekly_](https://rubyweekly.com/issues/642), a Rails core team member told us why we shouldn't indulge in _monkey patching_, we learnt to create an intelligent FAQ with GPT-3, and met the Rails Foundation's new executive director. 

**JAMSTACK:** In [this week's _JAMstacked_](https://jamstack.email/issues/75), Brian Rinaldi pondered React's role in the whole Jam space, and shared a few useful tools with us. 

**GO:** In [this week's _Go Weekly_](https://golangweekly.com/issues/449), we played a game of Solitaire on the terminal, discovered a Go-powered Web browser, and learnt more about what's new in Go 1.20. 

**RUST:** Sorry, we don't have a Rust newsletter, but we get asked that a lot!    

Thanks for reading, thanks to everyone who submitted items for this issue, and thanks to [Frontend Masters](https://frontendmasters.com/courses/background-javascript/?utm_source=javascriptweekly&utm_medium=email&utm_content=backgroundjs), [Whiskey Web and Whatnot](https://www.whiskeywebandwhatnot.fm/astro-20-island-architecture-and-react-with-fred-k-schott/), [Shortcut](https://shortcut.com/?utm_source=cooperJSWeekly&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=fourletter), and [Retool](https://retool.com/?utm_source=sponsor&utm_medium=newsletter&utm_campaign=javascriptweekly) for supporting this issue. See you next week!         

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
