Bring back the fun with p5.js 2.0

#​733 — April 25, 2025

Read on the Web

JavaScript Weekly

p5.js 2.0: The JavaScript Library for Creative Coding — A popular Processing-inspired creative coding library that makes it easy to create interactive, visual experiences (examples). v2.0 improves its font support, adds more ways to draw and manipulate text, adds a way to write shaders in JavaScript, and much more. p5.js 2.0: You Are Here has more details on the release and where the project is headed next.

p5.js Team

💡 p5.js is simultaneously useful and fun. It provides a great abstraction for interactive, visual experiences and is easy to play with using its online editor. A pastime of mine is asking AI models to create demos. For example, load this p5.js sketch and hit play to see a JS logo glitch experiment OpenAI’s o3 just made for me.

Unbork Your Laravel App (Live) — Laravel is so in right now. Join us for a hands-on debugging session using a demo app, Unborked. We’ll track errors, replay sessions, trace slowdowns, and maybe even let the robots help. Bring your bugs.

Sentry sponsor

Big Updates in the React World — You know it’s been a big week in the React world when the React Compiler hitting Release Candidate is the second most important story. In this latest React Labs post, we learn about two new features ready to try out today in react@experimental: View Transitions and the <Activity> component.

Ricky Hanlon

IN BRIEF:

SolidJS creator Ryan Carniato reflects on a decade running the SolidJS project, four years after hitting v1.0.

Back in March, the Node.js project suffered a security incident relating to its CI/testing setup. They’ve now written up the details of what happened.

With Deno 2.3 just around the corner, the Deno team shares a few updates on recent improvements.

RELEASES:

pnpm 10.9 – The alternative, efficient package manager. It can now be used to install JSR packages.

jsvu 3.0 – Tool to install versions of various JavaScript engines.

SmallJS 1.6 – A Smalltalk-80 implementation that runs in JavaScript.

Bun v1.2.10, Node.js v22.15.0 (LTS), Next.js 15.4 Canary

📖  Articles

Creating a 3D Split-Flap Display with JavaScript — A split-flap display is a electro-mechanical display commonly associated with live timetable displays and it makes for a neat effect on the Web too. Jhey breaks down how to replicate it, or you can hit up this live demo.

Jhey Tompkins

Impossible Components — Dan Abramov digs into the idea of so-called ‘impossible’ components that mix server-only and client-only features and how React Server Components can help bridge the divide, culminating in an example you can experiment with for yourself.

Dan Abramov

How to Build a Multi-Tenant App Using Clerk + Supabase — Clerk and Supabase empower you to build B2B apps with only a few small changes to your codebase. Learn how in this guide.

Clerk sponsor

Optimizing Node Performance with V8 GC Optimization — Matteo recently ▶️ gave a talk about Node’s memory usage and has written it up into this blog post. He notes that high memory usage doesn’t necessarily mean you have a memory leak, explains how V8’s garbage collection works, and how to tune things for your own use case.

Matteo Collina

Abusing DuckDB-WASM by Making SQL Draw 3D Graphics (Sort Of) — Oh, this is a fun experiment. DuckDB is a small and powerful in-process SQL database (think SQLite but for analytical tasks) and has a native WebAssembly build. Couple that with some JavaScript, and you too could do some rather bizarre things..

Patrick Trainer

💡 Lest you think this is just a fun item, you could use the techniques learnt here to integrate DuckDB more seriously into other Web projects.

📄 A Decade of Impact: How Our npm Packages Hit 1 Billion Downloads and Shaped JavaScript – A bold title for sure, but with a neat story behind it. Forward Email

📄 Float16Array in JavaScript – Understanding the 16-bit floating point array type. Trevor I. Lasn

📄 When to Use map() vs. forEach() Matt Smith

📄 Zero-Config Debugging with Deno and OpenTelemetry Casonato and Jiang (Deno)

🛠 Code & Tools

JavaScript Font Picker — A surprisingly featureful control for letting users pick fonts from a range of system fonts, Google fonts, and custom fonts of your choice. You can play with a code demo here or go to the GitHub repo.

Zygomatic

🎨 The folks behind this project have also built JS Color Picker.

Scala.js 1.19.0: A Way to Bring Scala and JavaScript TogetherScala is a powerful language that never quite seemed to make it big to me, but it has a devoted fanbase and has grown beyond its JVM roots to also have JavaScript and native runtimes. Scala.js is a Scala to JavaScript compiler and the homepage has some neat code and feature comparisons.

Scala.js Team

Penpot Launches Native Design Tokens! — Simplify your design & code collaboration with Penpot design tokens: the key to consistency and scalability.

Penpot sponsor

Spectacle: Create Sleek React-Powered Presentations — A React-based library for creating sleek presentations using JSX syntax that gives you the ability to live demo your code, add interactive elements, scrollable code blocks, graphics effects, and more.

Nearform

Frimousse: A Lightweight, Unstyled, and Composable Emoji Picker for React — The picker is accessible and won’t display any emojis that aren’t supported on the device. You can explore some demos here.

liveblocks

c15t (Consent Management) – A React approach to transforming privacy consent from a mere checkbox into a fully observable system.

bignumber.js 9.3 – Arbitrary-precision decimal and non-decimal arithmetic.

Milkdown 7.9 – Plugin-driven WYSIWYG Markdown editor framework.

Koota 0.4 – Performant real-time ECS-based state management.

tablesort 5.6 – Plain JS table row sorting mechanism.

📺 React Lite YouTube Embed 2.5

ESLint v9.25.1

📰 Classifieds

Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by Dropbox, Wiz, Lattice, Bilt Rewards, etc.

✉️ FYI: We publish two other JavaScript related newsletters if you work with Node.js or React: Node Weekly and React Status.

📢  Elsewhere

A quick roundup of other interesting updates and useful resources from across the broader developer landscape:

🤔 The Microsoft Edge team is looking for feedback on a new console.context() method to enable “helpful contextual logging” within the devtools.

🔭 David Cummings of the Jet Propulsion Laboratory gave a talk about ▶️ how they diagnosed and fixed a problem on the Voyager 1 space probe while it was 15 billion miles away. If you ever think debugging a local app is difficult, this is next level.

🔐 The maximum lifetime of TLS certificates is set to be reduced to 47 days in a gradual process between early 2026 and 2029.

🤯 Google may be forced to sell Chrome, and guess who’s interested in buying it? OpenAI, among others.

TIL you can interact with GitHub’s GraphQL API with the GitHub CLI tool.

TC39: No to records and tuples, yes to enums

#​732 — April 18, 2025

Read on the Web

🥚 A Good Friday, if you celebrate Easter at all. We’re taking a little break but didn’t want to take the entire week off, so we have a slimline issue for you today 🙂 We’ll be back to full service next Friday!
__
Peter Cooper, your editor

JavaScript Weekly

The ECMAScript Records and Tuples Proposal Has Been Withdrawn — Several years in the making, the record and tuples proposal offered two new deeply immutable data structures to JavaScript, but at this week’s TC39 meeting, the consensus was to drop it.

There have, however, been some more positive updates:

A proposal for introducing enums to JavaScript has advanced to stage 1. It seeks the adoption of a compatible form of TypeScript’s enum declaration. Slidedeck here.

The Deferred re-exports proposal has advanced to stage 2. There’s a slidedeck walking through the feature.

The Upsert and Composites proposals have been advanced.

It’s worth following Rob Palmer if you want to keep up to date with TC39 goings-on as he’s always sharing the latest news.

Plug & Play Image Editor For Your Web App — Save yourself the headache of building an image editor. Import the pintura module, give it an image source, and instantly get features like cropping, rotating, resizing, and annotation. Need help? Support has you covered. Try it for free today.

Pintura sponsor

Hako: A New High-Performance Embeddable JavaScript Engine — A fork of PrimJS (which is, itself, built on top of QuickJS) that compiles down to WebAssembly and can act as a portable, embeddable JavaScript engine for other apps (here’s an example of using it in a Go app).

Andrew Sampson

IN BRIEF:

Mozilla has enabled its Temporal implementation by default as of Firefox 139.

📘 Dr. Axel Rauschmayer has released Exploring TypeScript: TS 5.8 edition, a book bringing together all of his recent research into modern TypeScript development. You can buy the book but also read it all online for free in HTML form, if you prefer.

ESLint has added support for ‘bulk suppressions’, a way to make adopting stricter linting rules more manageable.

Dan Abramov is back with JSX Over The Wire, a fantastic meditation on the evolution of passing data and behavior between servers and clients and how things could get even better.

🤖 Microsoft’s Burke Holland ▶️ shows off VS Code’s new ‘agent mode’ feature which really makes Copilot far more powerful and a fine alternative to dedicated AI-powered editors. I’ve been using it a lot this week.

Google has made Firebase App Hosting generally available. It offers a streamlined, fully-managed deployment process for Angular and Next.js apps.

Sacha Greif, the name behind the State of JavaScript survey, has just launched the first ‘State of Devs’ survey. 🗳️ You can fill it out here.

RELEASES:

Astro 5.7 – The popular content framework gains an experimental fonts API, its sessions API is now stable, and there’s support for using local SVG files as components.

WebStorm 2025.1 – JetBrains’ JavaScript IDE – fresh with big AI, Angular, monorepo, and Next.js enhancements.

tldts 7.0 – URL parsing library to extract domains, subdomains, suffixes, etc.

gridstack.js 12.0 – Build responsive interactive dashboards quickly.

Lexe – Package a Node app into a single, small executable.

DOCX 9.4 – Generate Word documents from JavaScript.

Redux Toolkit 2.7, Bun v1.2.10, Babylon.js 8.3, Rambda 10.0

📖  Articles and Videos

A Flowing WebGL Gradient, Deconstructed — Even if you don’t want to render a neat plasma-style effect on the Web, this is a wonderfully deep exploration of the math and technology behind doing so using simple GLSL code that could be easily understood by any JavaScript developer.

Alex Harri

💡 If you like stuff like this, this CodePen of a GLSL-based swirl effect is neat too.

Advanced React in the Wild — A round-up of case studies showing how five different engineering teams have pushed React to the limit in production and their real-world wins in areas like performance, Core Web Vitals, caching, and more. A lot to enjoy here.

Addy Osmani and Hassan Djirdeh

📺 Building Single Page Apps with SvelteKit – And not only that, you can create SvelteKit apps in a single HTML file that can run without a Web server. (15 minutes) Stanislav Khromov

📄 How I Track My Blog’s Analytics with Val Town Orestis Papadopoulos

📄 Deploying TypeScript: Recent Advances and Possible Future Directions Dr. Axel Rauschmayer

📄 Zero-Config Debugging with Deno and OpenTelemetry Casonato and Jiang (Deno)

📄 Creating an AI Chat Experience with React and OpenAI Robin Wieruch

Comparing Tauri and Electron

#​731 — April 11, 2025

Read on the Web

JavaScript Weekly

🤖 Firebase Studio: Google’s New Agentic AI-Powered Development Environment — Buzzing from the success of Gemini 2.5 Pro for dev tasks, Google’s Firebase team gets in on the AI development action with a Cursor/v0/Lovable-a-like of its own for building apps in the browser.

Google

Some Features Every JavaScript Developer Should Know in 2025 — A quick list post breezing through a few more modern areas of JavaScript including iterator helpers, structuredClone(), and set operations.

Suren Enfiajyan

Next.js Fundamentals, v4 — Master Next.js with Scott Moss. Learn React Server Components, Server Actions, dynamic routing, authentication, caching, and edge functions. Create a modern React app, deploy it to Vercel, and level up your skills.

Frontend Masters sponsor

Node.js Testing Best Practices — A detailed guide to modern testing in Node from a group of developers who know all about it. It’s on GitHub, but essentially written like a free book covering over 50 battle-tested tips covering areas as diverse as the ‘Testing Diamond’, testing microservices, and simulating flaky networks.

Goldberg, Salomon, and Gluskin

IN BRIEF:

There’s speculation that the npm registry may have wiped all access tokens. If you’re having problems, the status update recommends creating new tokens while they attempt to restore them.

☁️ It’s been a busy week for Cloudflare! It now has an easy way to deploy Next.js apps to Cloudflare Workers, you can add a ‘deploy to Workers’ button to your Git repos, v1 of their Cloudflare Vite plugin has been released, and you can now deploy an entire frontend, backend, and database (supporting React Router, Astro, Vue.js, Svelte and more) in one Worker.

The RedwoodJS team has an update on the future of Redwood and what the ‘next epoch’ holds for the React-based framework.

p5.js 2.0 looks like it’ll be with us soon – its eighth beta has just landed. The release notes for beta 2 give an extensive idea of what’s coming.

🇷🇴 The annual JSHeroes conference is taking place this May 29-30 in Cluj, Romania.

RELEASES:

TypeSpec 1.0-RC – Microsoft’s language for defining cloud service APIs and shapes.

pnpm 10.8 – The alternative, efficient package manager.

Prisma 6.6 – Popular ORM for Node.js and TypeScript.

React Native 0.79 – Faster, faster, faster.

Bun 1.2.9, Tailwind CSS 4.1, CKEditor5 45, Zod 4 Beta

📒 Articles & Tutorials

Comparing Tauri and Electron for Building Desktop AppsElectron is a natural choice for building JS and HTML-powered cross-platform desktop apps but numerous alternatives have appeared like Neutralinojs and the Rust-based Tauri. This post does a good job of quickly showing how Tauri differs and why you might choose it.

Costa Alexoglou

Mastering Default Values with Nullish Coalescing (??) — Matt’s a big fan of the ?? operator over the || approach, largely due to JavaScript’s ideas of what it considers ‘falsy’.

Matt Smith

How Clerk Integrates with a Next.js Application Using Supabase — Learn how Supabase + Clerk work with Next.js to increase security and reduce development hours.

Clerk sponsor

Accelerating Large-Scale Test Migration with LLMs — How Airbnb completed its first large-scale, LLM-driven code migration in moving from Enzyme to React Testing Library.

Charles Covey-Brandt (Airbnb)

React Reconciliation: The Hidden Engine Behind Your Components — React uses a reconciliation algorithm to update the DOM based on changes to the virtual DOM. Understanding how it works is essential for producing faster apps.

Christian Ekrem

Hiding Elements That Require JavaScript Without Using JavaScript — If you’ve got non-essential features that require JavaScript and you want to hide them for users who have JavaScript disabled for whatever reason, this is a tidy old-school way to do it.

Dade

📄 Debugging JavaScript Memory Leaks in Bun Jarred Sumner

📄 Using Chrome’s (Preview) Prompt API for Data Summarization Raymond Camden

📄 How to Easily Reproduce a Flaky Test in Playwright Nicolas Charpentier

📄 Securing a Vue App with OpenID Connect and the BFF Pattern – That’s Backend-for-Frontend, not Best Friends Forever. Khalid Abuhakmeh

📄 The Case for Web Components with Lit Philipp Kunz

🛠 Code & Tools

Next.js 15.3: Now Including Turbopack Builds — The popular React framework now includes alpha support for using Turbopack for much faster production builds (especially if you have lots of cores available), community support for Rspack, and new navigation hooks.

The Vercel / Next.js Team

Chrono 2.8: A Natural Language Date Parser — Give it a string like “today”, “last Friday”, “2 weeks from now”, or even an entire date and time, and it’ll come up with a date object to suit.

Wanasit Tanakitrungruang

Breakpoints and console.log Is the Past, Time Travel Is the Future — 15x faster JavaScript debugging than with breakpoints and console.log, supports Vitest, Jest, Karma, Jasmine, and more.

Wallaby Team sponsor

🎵 Communicate with Ableton Live via WebSocketsAbleton Live is a popular DAW (digital audio workstation) and this opens up a way to control it from JavaScript.

Ricardo Matias

🕒 Spacetime 7.9 – Lightweight timezone library. Now supporting formatting times in SQL ISO format.

📊 Perspective 3.5 – Streaming data viz and analytics component. The core is written in C++ and compiled to WASM.

Embla Carousel 8.6 – Lightweight carousel library with fluid motion and swipe precision.

simpleParallax.js 6.1 – Add parallax effects to any image.

Tesseract.js 6.0.1 – Pure JS OCR for 100+ languages.

📰 Classifieds

Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by Dropbox, Lattice, Bilt Rewards, etc.

Working on the frontend? 🚀 Frontend Focus is a weekly update — trusted by 75,000+ devs — covering the essential trends, tools and tips that matter.

📢  Elsewhere

A quick roundup of other interesting updates and useful resources from across the broader developer landscape:

Git has turned 20 years old and GitHub’s Taylor Blau caught up with Linus Torvalds to discuss the milestone and the background to the project.

Tired of hearing about TypeScript? Why not experiment with programming in PostScript and running games on your printer?

Minimal CSS-only Blurry Image Placeholders is an article showing off a very clever technique for using CSS to dynamically create blurry image placeholders prior to an image loading in.

Mozilla’s Simon Pieters tells us that default styles for H1 elements are changing and browsers are starting to roll out changes in default styles for nested section headings.

Docker has released a new extension for VS Code in a collaboration with the Microsoft Container Tools team.

The JavaScript trademark fight rumbles on

#​730 — April 4, 2025

Read on the Web

JavaScript Weekly

Bare: A New Lightweight Runtime for Modular JS Apps — Imagine something like Node.js but really stripped back: bare, if you will. Like Node, it’s built on top of V8 and libuv (though it’s designed to support multiple JavaScript engines) but Bare’s approach is to provide as little as possible (a module system, addon system, and thread support) and then rely upon userland modules that can evolve independently of Bare itself. It’s an interesting idea – more details here.

Holepunch

An Update on the Deno v Oracle JavaScript™ Fight — Deno filed a petition with the USPTO to cancel the ‘JavaScript’ trademark, as claimed by Oracle, and Oracle stepped up to fight back. Ryan recaps the basic story and asks for help to get the word out (signing the open letter is a great start, if you agree Oracle abandoned the trademark).

Ryan Dahl

AG Grid: The Best JavaScript Data Grid In The World — Create high-performance data grids with our open-source library, trusted by 90% of the Fortune 500. Add advanced features like Integrated Charting, Grouping, Pivoting and more with a few lines of code. Supports React, Angular and Vue. Try for free.

AG Grid sponsor

React 19.1 Released — The headline feature is Owner Stacks, a dev-only feature to track which components are responsible for rendering other components. 19.1 also brings fixes, small additions (like support for streaming in edge environments), a new API for prerendering RSCs on the server, and enhanced Suspense support.

Matt Carroll (Facebook)

IN BRIEF:

Safari 18.4 has been released with Declarative Web Push support, iterator helpers, Error.isError, and faster JSON.parse and JSON.stringify functions.

There’s a longstanding proposal to bring TS-style enums to JavaScript and author Ron Buckton will be pitching it to TC39 at its next meeting. Here’s a slidedeck covering the benefits. Thanks to Rob Palmer for highlighting this.

The ES2025 spec has reached candidate stage in anticipation of being finally approved in June.

RELEASES:

Express 5.1 – The long standing Node.js web framework gets a bump with 5.x finally becoming the latest tagged version on npm.

React Email 4.0 – Components and tools for rendering HTML emails.

zx 8.5 – Google’s tool for better Node shell scripting.

Astro 5.6, Ember 6.3, Turborepo 2.5, Node.js v23.11.0, Bun v1.2.8

📒 Articles & Tutorials

Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot — One of Deno’s compelling features is its support for Jupyter Notebooks and easy notebook-style programming, such as is common in the Python world. Trevor looks at a practical use of using such a notebook environment for data exploration.

Trevor Manz

Could JavaScript Have Synchronous await? — Dr. Axel reflects on the problems around async code being different to synchronous code and ways around the limitations faced. What could the consequences of a synchronous await be?

Dr. Axel Rauschmayer

Hands-On Debugging Session: Instrument, Monitor, and Fix — Build it, break it, debug it, and fix it — with Sentry. See how to get set up, track errors, use Session Replay and the new Trace Explorer, plus leverage AI to find and fix issues fast.

Sentry sponsor

JavaScript’s Missing Link? Wasp Offers a Full Stack Solution — A look at what the Wasp team is trying to do building a full-stack webapp framework around React, Node, and Prisma. It’s a powerful option if you’re looking for a more traditional-feeling full-stack approach.

Loraine Lawson (The New Stack)

🚂 How a Steam Locomotive from 1993 Broke My Yarn Test – A fun bug hunting tale that actually delivers on its title. Yew Leong

📄 Breaking Down Circular Dependencies in JavaScript Bryan Braun

📄 Automated Visual Regression Testing with Playwright Frederik Dohr

📄 Lessons Learned From My First Dive Into WebAssembly Chris Wellons

🛠 Code & Tools

Anime.js 4.0: A JS Animation Library for the Web — If you’re tired of Web animations, maybe Anime.js will refresh your appetite. This is a major upgrade to a mature library for animating CSS properties, SVGs, the DOM, and JS objects. It’s smooth, well-built, and now complete with fresh documentation.

Julian Garner

Learn How to Integrate Clerk with Lovable — Lovable integrates Clerk for custom domains, streamlined auth flows, and waitlist-powered onboarding.

Clerk sponsor

Milkdown 7.7: WYSIWYG Markdown Editor Framework — A WYSIWYG Markdown editor framework based around a plugin system that enables a high level of customization. The docs are rendered by Milkdown itself. GitHub repo.

Mirone

TinyBase v6.0: A Reactive Data Store for Local-First Apps — We’re huge fans of this powerful reactive data store that can be used as the entire backend for many types of app. v6.0 adds no new functionality but brings React 19 support and goes ESM-only. Check out the homepage for more.

James Pearce

🤖 node-llama-cpp 3.7 – Run LLMs locally with bindings to llama.cpp.

bignumber.js 9.2 – Arbitrary-precision decimal and non-decimal arithmetic.

TS-Pattern 5.7 – Pattern matching library with smart type inference.

React Admin 5.7 – Framework for building B2B frontend interfaces.

UVCanvas 0.3 – Render beautifully shaded canvases from React.

Danfo.js 1.2 – Pandas-inspired JavaScript data analysis toolkit.

Vuetify 3.8 – Vue component framework.

📰 Classifieds

Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by Dropbox, Lattice, Bilt Rewards, etc.

✉️ Don’t forget we have two other JavaScript related newsletters if you work with Node.js or React: Node Weekly and React Status respectively.

📢  Elsewhere

A quick roundup of other interesting updates and useful resources from across the broader developer landscape:

If you fancy writing a blog post that could make it into JavaScript Weekly, checking out How to Write Blog Posts that Developers Read by Michael Lynch isn’t a bad idea.. 🙂 (Then hit reply and tell us about it!)

Chrome 135+ includes support for the CSS Overflow 5 spec which makes it easier to create native scrolling and carousel experiences.

Yoni Goldberg writes about the sweet and powerful ‘use case’ code pattern.

Some tips from GitHub for project maintainers: 5 GitHub Actions Every Maintainer Needs to Know

🤖 The New Stack’s Alex Williams looks at how AI agents are transforming frontend development.