---
title: "An easy way to experiment with signals"
publication: "JavaScript Weekly"
issue: 683
published_at: "2024-04-11"
canonical_url: "https://javascriptweekly.com/issues/683"
---

Plus bringing JavaScript into Python (or your car), building Figma plugins, and the return of the iPod. |        

#​683 — April 11, 2024 

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

Together with [![Mescius\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_454,h_111/e_make_transparent/co_white,e_outline:7/iwtw1igi5mjsbp1jqfn5.png)](https://developer.mescius.com/spreadjs?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=SpreadJS-JS-Weekly-Primary-Sponsor-April-2024)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ffiw3nxbznr2mgnt4feq.jpg)](https://helabenkhalfallah.medium.com/frontend-development-beyond-react-svelte-1-3-f47eda22cba5?source=friends_link&sk=e737ef9aec291d033d1140b4bbb0bf56)  

[Frontend Development Beyond React: Svelte](https://helabenkhalfallah.medium.com/frontend-development-beyond-react-svelte-1-3-f47eda22cba5?source=friends_link&sk=e737ef9aec291d033d1140b4bbb0bf56) — A surprisingly thorough article going deep into one developer’s research into using [Svelte](https://svelte.dev/) to build modern front-end apps. If you’ve never experimented with Svelte, this is a good primer to the key concepts, tradeoffs, and techniques involved. 

Héla Ben Khalfallah   

🛠 [A JS Bin to Play with the TC39 Signals Proposal](https://jsbin.com/safoqap/6/edit?html,output) — Last week, we featured [the proposal to add signals to JavaScript](https://github.com/proposal-signals/proposal-signals) and by way of a polyfill, you can get experimenting with it right now. 

NullVoxPopuli   [![\](https://copm.s3.amazonaws.com/e4840a3a.png)](https://developer.mescius.com/spreadjs?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=SpreadJS-JS-Weekly-Primary-Sponsor-April-2024) 

[Add Excel-Like Spreadsheet Functionality to Your JavaScript Apps](https://developer.mescius.com/spreadjs?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=SpreadJS-JS-Weekly-Primary-Sponsor-April-2024) — SpreadJS is the industry-leading JavaScript spreadsheet for adding advanced spreadsheet features to your enterprise apps. Build finance, analysis, budget, and other apps. Excel I/O, 500+ calc functions, tables, charts, and more. View demos now. 

SpreadJS from MESCIUS inc sponsor   

[zx v8.0: Write Better Shell Scripts with Node](https://github.com/google/zx/releases/tag/8.0.0) — A popular way to make shell scripting a more pleasant experience in Node with useful wrappers around `child_process`, argument escaping, and sensible defaults. v8.0 makes zx _20x smaller_, faster, makes it easier to kill processes, pass input to commands & more. 

Google   

**IN BRIEF:** 

- [Val Town](https://www.val.town/) is a fantastic online platform for writing and deploying TypeScript functions right from the browser and has [just raised $5.5m in funding.](https://blog.val.town/blog/seed/)
- The [set methods proposal](https://github.com/tc39/proposal-set-methods) advanced to stage 4 at TC39 this week. [`Promise.try`](https://github.com/tc39/proposal-promise-try) and [`Math.sumPrecise`](https://github.com/tc39/proposal-math-sum) have advanced to stage 2.7.
- 🚗 What happens if [𝕏 you hack a car with JavaScript?](https://twitter.com/devdevcharlie/status/1777366634514309610)
- Cloudflare has added [a JS-native RPC to Cloudflare Workers.](https://blog.cloudflare.com/javascript-native-rpc)
- [A recap of Angular developments](https://ionic.io/blog/recapping-ngconf-2024) at the recent _ngConf 2024_ event. 

**RELEASES:** 

- [ESLint 9.0](https://eslint.org/blog/2024/04/eslint-v9.0.0-released/) – A significant release with lots of cleanups, a new [no-useless-assignment rule](https://eslint.org/blog/2024/04/eslint-v9.0.0-released/#new-rule%3A-no-useless-assignment), and numerous tweaks and changes.
- [VitePress 1.1](https://vitepress.dev/) – Vite & Vue-powered static site generator.
- [npm 10.5.2](https://github.com/npm/cli/releases/tag/v10.5.2) – It's now [𝕏 faster to run scripts](https://twitter.com/vinii_joga10/status/1778162124797178340), though we're talking milliseconds nowadays.
- [Node.js April 10 Security Releases](https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2) – Including [v18.20.2 (LTS)](https://nodejs.org/en/blog/release/v18.20.2), [v20.12.1 (LTS)](https://nodejs.org/en/blog/release/v20.12.2), and [v21.7.3 (Current)](https://nodejs.org/en/blog/release/v21.7.3).
- We mentioned Gulp 5's release last week, but missed [the announcing Gulp v5 post](https://medium.com/gulpjs/announcing-gulp-v5-c67d077dbdb7) explaining why it's a big deal.  

📒 Articles & Tutorials  

[On Developing Figma Plugins](https://macwright.com/2024/03/29/figma-plugins.html) — Some interesting observations on the experience of creating Figma plugins in JavaScript, including how they’re sandboxed and some implementation details of the author’s [own plugin.](https://www.figma.com/community/plugin/1189962635826293304/placemark) 

Tom MacWright   

[React Server Components in a Nutshell](https://thenewstack.io/react-server-components-in-a-nutshell/) — A quick overview of RSCs _not_ all about Next.js, comparing the approach taken by several frameworks before sharing thoughts on the tech and why the smaller [Waku](https://waku.gg) framework is worth a look. 

Paul Scanlon (The New Stack)   

[Using AI-Powered Autofix to Fix Your Broken Code](https://sentry.io/resources/autofix-workshop/?utm_medium=paid-community&utm_source=javascriptweekly&utm_campaign=fy25q1-autofixworkshop&utm_content=newsletter-autofixworkshop-register) — Join Sentry live on April 25th, to preview Autofix and learn how we are using ML to prioritize issues and alerts. 

Sentry sponsor   

[Some DevTools Tips and Tricks](https://frontendmasters.com/blog/devtools-tips-tricks/) — Most developers barely scratch the surface of what DevTools can accomplish, says the author, who shares ten tips here. 

Pankaj Parashar   

📄 [Object Structure in JavaScript Engines](https://blog.frontend-almanac.com/js-object-structure) – You rarely _need_ to know how objects are internally represented in JavaScript engines, but if you want to.. Frontend Almanac 

📄 [The Easiest Way to Build Reactive Local-First Apps, with TinyBase and PowerSync](https://bndkt.com/blog/2024/the-easiest-way-to-build-reactive-local-first-apps-with-tinybase-and-powersync) Benedikt Müller 

📄 [Building an Article Recommendation System with Upstash, Fly and OpenAI](https://upstash.com/blog/article-recommendation-system) Rishi Raj Jain 

📄 [Browser Security Bugs That Aren’t: JavaScript in PDFs](https://textslashplain.com/2024/04/10/browser-security-bugs-that-arent-javascript-in-pdf/) ericlaw 

📄 [Exploring Authentication in Next.js](https://www.robinwieruch.de/next-authentication/) Robin Wieruch  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lk6qmejyhgwepjtdjqqr.jpg)](https://github.com/pahen/madge)  

[Madge 7.0: Create Graphs From Your Module Dependencies](https://github.com/pahen/madge) — A tool for generating a visual graph of module dependencies, finding circular dependencies, and discovering other useful info. 

Patrik Henningsson   

[PythonMonkey: A JavaScript Engine in the Python VM](https://github.com/Distributive-Network/PythonMonkey) — If you need to use Python but also want to run JavaScript, this gives you a way to do it with the Mozilla SpiderMonkey JS engine embedded into the Python runtime with Python providing the host environment. 

Distributive   

[❤️ Loving console.log Is Easy, but Hate 😡 Losing Context to View Messy Output](https://wallabyjs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — Developer productivity tools [Wallaby.js](https://wallabyjs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly), [Quokka.js](https://quokkajs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) and [Console Ninja](https://console-ninja.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) show console.log values and errors right next to your code. 

Wallaby Team sponsor   

[Faces.js: A Library for Generating Vector-Based Cartoon Faces](https://zengm.com/facesjs/) — The end results are _somewhat_ reminiscent of how the Nintendo Wii generates random _Mii_s. Faces are drawn as SVGs with each also represented by a JavaScript object so you can draw them again later. 

ZenGM   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lneeywf73dwnxuti9a4u.jpg)](https://colorjs.io/)  

[Color.js 0.5: 'Let’s Get Serious About Color'](https://colorjs.io/) — A fantastic library for working with colors in the browser, following the latest specs. It’s even been used by browsers to test their CSS Color 4/5 implementations. 

Lea Verou and Chris Lilley   

[Preview.js: Preview UI Components Instantly in Your IDE](https://previewjs.com/) — Namely, VS Code or JetBrain IDEs, out of the box. Compatible with components built for React, Vue, Svelte and Solid. 

Zenc Labs Pty   

[Kosko: Organize Kubernetes Manifests in JavaScript](https://kosko.dev/) — [Version 4.1](https://kosko.dev/blog/2024/03/28/kosko-4.1) has just been released with a new plugin system. 

Tommy Chen   

[Transformational Auth & Identity | Userfront](https://userfront.com/?&utm_source=javascriptweekly.com&utm_medium=newsletter_sponsored_link&utm_campaign=magnitude&utm_content=transformational) — "Compared to our previous experiences in the security/auth space, Userfront is an order of magnitude simpler to use." 

Userfront sponsor   

- [Mikro ORM 6.2](https://mikro-orm.io/blog/mikro-orm-6-2-released) – TypeScript ORM for Node.js based on Data Mapper. SQL Server and libSQL/Turso join the list of supported databases.
- [Rspack 0.6](https://www.rspack.dev/blog/announcing-0.6.html) – Fast Rust-based web bundler.
- [Pixi.js 8.1](https://github.com/pixijs/pixijs/releases/tag/v8.1.0) – The fast WebGL and WebGPU 2D graphics engine switches back to WebGL by default due to immature browser support.
- [Jotai 2.8](https://github.com/pmndrs/jotai/releases/tag/v2.8.0) – Simple, flexible state management for React.
- [DOMPurify 2.5](https://github.com/cure53/DOMPurify) – Fast, tolerant XSS sanitizer for HTML and SVG.
- [Reveal.js 5.1](https://github.com/hakimel/reveal.js/releases/tag/5.1.0) – Framework for building presentations in HTML.
- [Xterm.js 5.5](https://github.com/xtermjs/xterm.js/releases/tag/5.5.0) – Create terminal experiences on the Web.
- [TIFF 6.0](https://github.com/image-js/tiff) – Pure JS TIFF image decoder.
- [Shiki 1.3](https://github.com/shikijs/shiki) – Powerful syntax highlighter.  

🛞 It's wheely good.. 

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

Remember the iPod's click wheel? [It's back. In JavaScript form!](https://www.clickwheeljs.com/)         

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
