This guide will walk you through multiple methods: using a package manager, nvm, NodeSource distribution binaries, and manually downloading
Month: January 2025
How to Update Node.js Versions on MacOS
In this guide, we’ll walk through different methods, including Homebrew, Node Version Manager (nvm), and manual installation.
A WebAssembly compiler in 192 bytes
#721 — January 31, 2025
JavaScript Weekly
Things People Get Wrong About Electron — A long-time maintainer of the wildly successful Electron cross-platform app framework stands by the technical choices Electron has made over the years and defends it against some of the more common criticisms here.
Felix Rieseberg
Standard Schema: A Common Interface to Schema / Validation Libraries — From the creators of Zod, Valibot and ArkType comes a fantastic bit of collaboration to define a common interface to use JavaScript and TypeScript schema libraries.
McDonnell, Hiller, and Blass
JavaScript: The Hard Parts — Take your knowledge to the next level with the most loved JavaScript course in the industry. Deepen your understanding of the most important aspects of JavaScript. This highly rated video course goes under the hood, looking at callbacks, higher-order functions, object-oriented JS, and more.
Frontend Masters sponsor
A WebAssembly Compiler That Fits in a Tweet — Or 192 bytes, if you prefer. This is a look into a fantastic little bit of JavaScript hacking that can compile arithmetic expressions into WebAssembly you can run very easily. You can learn a lot in so little time here.
Mariano Guerra and Patrick Dubroy
Announcing TypeScript 5.8 Beta — It’s that time again. What’s new? Support for using require() for ES modules in Node 22+, checked returns for conditional and indexed access types, startup and building optimizations & more. While not a huge release overall, it’s particularly good for Node devs.
Daniel Rosenwasser
💡 One neat 5.8 feature is –erasableSyntaxOnly, a way to ensure that ‘type stripping’ techniques still result in runnable code by disallowing TypeScript-exclusive features like enums.
IN BRIEF:
🎬 Remember Honeypot’s well-received Node.js documentary? (If not, watch it!) Now there’s a trailer for an Angular documentary due soon.
There’s been a lot of chatter about Create React App being effectively ‘deprecated’ due to a lack of updates from Meta. Turns out, it is deprecated, but the process is now being managed gracefully and some basic React 19 support will be merged in.
A developer came up with an approach to making npm packages 5% smaller using Zopfli compression and asked the npm team to consider it. Ultimately the decision was no for a variety of reasons.
⭐ The Syntax YouTube channel presents ▶️ a fun countdown of the top 15 most starred JavaScript projects on GitHub. This is so well put together.
RELEASES:
Astro 5.2 – The popular framework adds Tailwind CSS 4 support and more niceties.
pnpm 10.1 – The alternative, efficient package manager.
Prisma 6.3 – Popular ORM for Node.js and TypeScript.
⭐ Phaser v4 Beta 5, Node.js 23.7, npm 11.1, Neutralinojs 5.6
📒 Articles & Tutorials
The Modern Way to Write JavaScript Servers — The irony is that while Node popularized JavaScript on the server (though Netscape was doing it in the 90s) this modern, standardized cross-runtime approach doesn’t work on Node …yet 😉
Marvin Hagemeister
Introducing Mentoss: The fetch Mocker — A new approach to mocking global fetch() calls (in both browsers and server-side runtimes) inspired by previous attempts like Nock and MSW.
Nicholas C. Zakas
Wish Your AI Co-Pilot Actually Knew Your Codebase? — Try the most context-aware Developer AI. Augment deeply understands your codebase, documentation, and dependencies.
Augment Code sponsor
Lessons from Scaling WebSockets for a JavaScript App — Scaling WebSockets for real-time apps presents hidden complexities. Compose shares some lessons learnt the hard way.
Atul Jalan
📄 Computing with Tuples in TypeScript – A way to bring objects of different types together but in a lighter way than keyed objects. Dr. Axel Rauschmayer
📄 How Long is a Second in JavaScript? – What may seem like a straightforward query is actually one of surprising complexity. Iago Lastra
📄 Adding Maps to Your Pages with Leaflet.js – Quick, easy, and open source to boot. Raymond Camden
📄 How to Use Node’s fs in the Browser for Custom Playgrounds Ivan Chebykin
📄 Building a QR Code HTML Web Component Scott Jehl
📄 How to Build a CMS with React Admin Thibault Barrat
🛠 Code & Tools
docxtemplater: Generate docx and pptx Documents from Templates — Generate Word and PowerPoint files dynamically by merging against templates (ideal for invoices, contracts, certificates, etc.) It’s open source (MIT or GPLv3), but the creator has a commercial version with more extensions (e.g. to work with Excel). GitHub repo and feature demos.
Edgar Hipp
📊 Plotly 3.0: A JavaScript Graphing Library — A high-level, declarative charting library, built on top of D3 and stack.gl, with over 40 chart types, including 3D charts, statistical graphs, and SVG maps. v3 is largely to remove deprecations, fix bugs, and a switch to esbuild.
Plotly, Inc.
Using Clerk SSO to Access Google Calendar and Other Service Data — Leverage Clerk’s social sign in providers to easily access service data on behalf of your users.
Clerk sponsor
Emittery 1.1: A Simple, Modern Async Event Emitter — A small, async event emitter for Node and the browser, and now with support for AbortController.
Sindre Sorhus
jsontr.ee: Visualize JSON Structures as Dynamic SVG Diagrams — You can try it out on this playground, which provides the option to download the diagram as PNG, or use it in an app with customizable styles.
Lou Alcalá
DBOS Transact v2: Lightweight Durable Execution in TypeScript — Durable execution means persisting the execution state of your program while it runs, so if it’s interrupted or crashes, it resumes from where it left off – ideal for long-running or business-critical workflows. Docs.
DBOS, Inc.
📰 Classifieds
Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by Lattice, Bilt Rewards, etc.
Protect your SaaS app with advanced device fingerprinting from WorkOS Radar. Stop fake signups, free tier abuse, bot attacks and brute force attempts today.
jscanify 1.3: JavaScript Document Scanning Library — Given raw photos of documents, this can do paper detection (along with glare suppression), distortion correction, highlighting and extracting. See some visual examples or try it out here.
ColonelParrot
Ruck 9.0: A React Webapp Framework for Deno — A lean React-based way to build modern React apps with Deno using features like ESM, dynamic imports, HTTP imports, and import maps with no transpilation or bundling.
Jayden Seric
OpenPGP.js 6.1 – OpenPGP implementation for JavaScript.
wavesurfer.js 7.9 – Waveform rendering and playback.
Poku 3.0 – Cross-platform JavaScript test runner.
How Node.js Works: A Comprehensive Guide in 2025
In this article, we’ll explore how Node.js works, its architecture, key features, advantages, challenges, and its role in the future of web development.
Bun’s on a roll with v1.2
#720 — January 24, 2025
JavaScript Weekly
Bun 1.2: A Big Step Forward for the Fast JS/TS Runtime — The JavaScriptCore-based Bun continues to up its server-side runtime game with strides forward in Node.js compatibility, performance boosts, and new APIs for interacting with S3 and S3-like object stores as well as Postgres. If you’d prefer to be ▶️ introduced to Bun 1.2 with a keynote-style video, it’s a good watch.
Ashcon Partovi and the Bun Team
🦖 ..and by no means should we forget Deno whose team have published a roundup of all of Deno’s progress in the past year.
FlexGrid by Wijmo: The Industry-Leading JavaScript Datagrid — A fast and flexible DataGrid for building modern web apps. Key features and virtualized rendering are included in the core grid module. Pick & choose special features to keep your app small. Built for JavaScript, extended to Angular, React, and Vue.
Wijmo From MESCIUS inc. sponsor
🤖 Transformers.js v3.3: Machine Learning and AI for the Web — This is a dry release announcement but I wanted to highlight the rapid pace that this exciting library is making for browser-based NLP, speech recognition, vision, and now text-to-speech use cases (live TTS demo here – it takes a while to load though). It’s also being used in Firefox for various enhancements (see below).
Hugging Face
IN BRIEF:
The creator of SolidJS says that Angular and Vue are the frameworks to watch in 2025, while reflecting on JS framework progress generally.
A year ago, Kelly Sutton wrote about his company’s move away from React but how did it pan out? In Moving On from React, a Year Later he explains how things have gone since.
JSON Query is a neat, flexible JSON querying language. The demos really sell it IMHO.
The ESLint project takes a look back at ESLint’s 2024 year in review.
GitHub has unveiled sub-issues, issue types, and advanced search for issues.
RELEASES:
Rspack v1.2 – Fast Rust-based Web bundler adds a peristent cache feature that improves hot start performance by up to 250%.
Node v23.6.1 (Current), v22.13.1 (LTS), v20.18.2 (LTS), v18.20.6 (LTS) to resolve some security vulnerabilities.
Capacitor 7.0 – Build cross-platform native apps/PWAs with web technologies.
React Native 0.77 – Now with enhanced styling capabilities.
Vitest 3.0 – The fast Vite-native testing framework.
NestJS 11, Storybook 8.5, Unpic 1.0, Inferno 9.0
📒 Articles & Tutorials
🕒 JavaScript Temporal is Coming (For Real!) — We first mentioned the Temporal API proposal providing a better way to handle dates and times in JavaScript almost five years ago (in issue 496!) but now it really is almost here. Brian explains its basic concepts and where initial support is starting to appear.
Brian Smith
Avoiding anys with Linting and TypeScript — any is TypeScript’s famous type fallback/safety hatch but if you can avoid it, you can benefit more from TypeScript’s type-checking features. Josh shares some tips to do just that.
Josh Goldberg
[Workshop] How to Build Testing Culture on Your Team — Join our live session to learn strategies for gaining buy-in, balancing testing, and integrating it into daily workflows.
Sentry sponsor
🤖 Running Inference in Web Extensions — Firefox Nightly is shipping with a new API that can let you use their AI runtime for offline machine learning tasks in Web extensions you create. It uses the previously mentioned Transformers.js and is already used in Firefox 133 to provide alt text for images in PDFs.
Tarek Ziadé (Mozilla)
📄 Generating Test Values using JavaScript Generators Peter Leonov
📄 TypeScript Enums: Use Cases and Alternatives Dr. Axel Rauschmayer
📄 Fetch and HTTP/2 Support in Node, Bun and Deno Georges Haidar
📊 A Deep Dive into Initial Load Performance Nadia Makarevich
📄 Improving UI Performance by Optimizing Our Debouncer Atul Jalan (Compose)
📄 Angular Clean Coding Fundamentals Jonathan Gamble
🛠 Code & Tools
deck.gl 9.1: GPU-Powered Large Scale Data Visualization — deck.gl provides a way to create complex yet high performance data visualizations composed of multiple layers (examples). It can be used in a vanilla JS way or through React components and it’s ready for WebGPU.
OpenJS Foundation
Breakpoints and console.log Is the Past, Time Travel Is the Future — Next-level testing in any editor, 15x faster with Interactive Time Travel Debugger, real-time insights & advanced coverage in a new UI.
Wallaby Team sponsor
ArkType 2.0: Runtime Validation Library — An easy-to-deploy solution for schema validation that can infer TypeScript definitions 1:1 and use them as optimized validators for your data, both at runtime and for immediate type-level feedback in your editor.
ArkType
NodeBB v4.0.0 Released: Node.js Powered Forums — Offers a classic forum experience in a modern Node.js-shaped guise. v4 adds support for federation between instances and the wider ‘fediverse.’
NodeBB, Inc.
SRCL: Build React Apps with ‘Terminal Aesthetics’ — The homepage is a live demonstration of what SRCL has to offer. It’s a suite of React components and styling to recreate a monospaced, terminal-like atmosphere
Internet Development Studio Company
🎶 Chiptune.js: Module / Tracker File Player — A library for playing ‘module’ music files like MOD, XM and S3M. (Demo.)
Chiptune Contributors
📰 Classifieds
Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by Lattice, Bilt Rewards, etc.
☀️ The main JS conference returns to a unique venue! Enjoy 50+ talks & workshops, a food truck festival, networking with 1.5K devs, & 10% off with code JSWEEKLY!
GoReleaser v2.6 – A popular ‘release engineering’ tool in the Go world has just added support for Bun and Deno.
React Admin 5.5 – Framework for building B2B frontend interfaces. Now with React 19 and React Router 7 support.
React Scan 0.1 – Automatically scan for performance issues and eliminate slow renders in your app.
🎵 ChordSheetJS 12.0 – Library for parsing and formatting chords and chord sheets. (Demo.)
Fortune Sheet 1.0 – Drop-in Excel-like spreadsheet control.
ApexCharts 4.4 – Popular JS charting library. (Demos.)
YouTube.js 13.0 – JS client for YouTube’s private API.
BlockNote 0.23 – ‘Notion-style’ block-based editor.
Node.js CVE Security Release: What You Need to Know
This release mark a pivotal moment: the announcement of Common Vulnerabilities and Exposures (CVEs) for unsupported, end-of-life (EOL) Node.js versions.
An introduction to building live collaborative JS apps
#719 — January 17, 2025
JavaScript Weekly
Learn Yjs and Building Realtime Collaborative Apps in JavaScript — Yjs is a CRDT (Conflict-free replicated data type) library for building collaborative and local-first apps. CDRTs are powerful but can be tricky to ‘get’ which is why this new interactive Yjs tutorial is so valuable. A great way to learn about building collaborative, syncing webapps from the ground up.
Jamsocket
Bun v1.1.44: The Fast JS Runtime Adds On-Demand Frontend Bundling — The popular, high-performance alternative JavaScript runtime has extended its Bun.serve() HTTP handler with support for bundling frontend apps on demand using HTML imports.
Ben Grant
Protect Against Bots, Fraud, and Abuse in Real Time — With WorkOS Radar you can detect, verify and block harmful behaviour, protecting your app with advanced device fingerprinting. Stop fake signups, stop free tier abuse, and stop bot attacks and brute force attempts today.
WorkOS sponsor
A Checklist for Your tsconfig.json — What I love about Dr. Axel is when he’s done the hard work of figuring something out for himself, he writes it down. So it goes here, with his journey to set up a good tsconfig.json for his projects.
Dr. Axel Rauschmayer
IN BRIEF:
The Angular team shares a brief update on how they’re working on Angular’s strategy for 2025.
👽 Alien Signals are coming to Vue 3.6… (it’s basically a really fast way to handle signals.)
Tired of seeing this everywhere in your code? Dave Rupert has a fun way to turn it into a single glyph in VS Code.
RELEASES:
Electron 34 – The JS, HTML and CSS desktop app framework updates to Chromium 132, Node 20.18.1, and adds a way to access the JavaScript call stack of unresponsive renderers.
Puppeteer 24 – Popular high-level API to control Chrome or Firefox.
Cypress 14 – Easy testing for anything that runs in a browser. Now supporting the latest versions of React, Angular, Svelte & Vite for component testing.
Storybook 8.5, ESLint 9.18.0, ESLint Config Inspector 1.0, AngularFire 19.0
📒 Articles & Tutorials
A Look at Regular Expression Pattern Modifiers — You may be familiar with using flags to change the behavior of regexes, but Dr. Axel looks at a proposal bringing a way to change regex flags within subexpressions (e.g. /^[a-z](?-i:[a-z])$/i;). It’s at stage 4 and should land in ECMAScript 2025.
Dr. Axel Rauschmayer
Accessibility Essentials Every React JS Developer Should Know — If you’re an experienced frontend developer, these might be second nature to you by now, but this is a good roundup of the entry level ‘table stakes’ for frontend accessibility, whether using React or not.
Martijn Hols
Write More Maintainable JavaScript with AI Code Reviews — CodeRabbit is your AI-powered code review companion that deeply understands the JavaScript codebase. Free for open source.
CodeRabbit sponsor
Five Years of React Native at Shopify — Five years ago, Shopify said React Native was the future for mobile development at their company and they meant it, with every mobile app moving to RN over time. Here’s what they learnt along the way and why they’re sticking with it.
Mustafa Ali (Shopify)
Revealed: React’s Experimental Animations API — <ViewTransition /> is based on the browser’s View Transition API. It’s only in pre-release versions of React, but Matt is armed with examples for you to get a feel for the potential.
Matt Perry (Motion)
📄 All JavaScript Keyboard Shortcut Libraries are Broken – Reflections on long standing complexities with the myriad ways of detecting keypresses. Jack Duvall
📄 JavaScript Hashing Speed Comparison: MD5 vs. SHA-256 – You shouldn’t be using MD5 anyway, but you especially shouldn’t be using it with the misconception that it’s faster. Daniel Lemire
📄 5 Technical JavaScript Trends You Need To Know About in 2025 Alexander T. Williams
📄 Creating a Generative Artwork with Three.js Eduard Fossas
📄 JavaScript’s Promise.race and Promise.all Are Not “Fair” Chris Krycho
📄 Node.js’s Type Stripping Explained Marco Ippolito
🛠 Code & Tools
♟️ Chess.js: A Library to Manage a Chess Game — Provides move generation, validation, piece placement, check/checkmate/stalemate detection – “everything but the AI!” v1.0 offers a rewrite to TypeScript and a variety of enhancements.
Jeff Hlywa
💡 Chess Engines: A Zero to One is a neat article digging into the technicalities of implementing a chess engine.
react-nil 2.0: A React ‘Null Renderer’ — An interesting experiment to use React in situations where you don’t need it to render anything, but you want to use hooks, suspense, context, and other bits of the React lifecycle. Like in, say, a Node app. Maybe this CodeSandbox example will provoke some ideas.
Poimandres
🔎 file-type 20.0: Detect the File Type of a File, Stream or Data — For example, give it the raw data from a PNG file, and it’ll tell you it’s a PNG. Uses a ‘magic number’ approach so is targeted at non text-based formats. v20 adds support for yet more formats, including JARs, Word/Excel templates, and now supports ZIP decompression.
Sindre Sorhus
Node Web Audio API 1.0: A Web Audio API Implementation for Node — More accurately, it’s a set of Node bindings for a Rust-powered non-browser implementation of the Web Audio API.
IRCAM – Centre Pompidou
⚙️ Vue Spring Bottom Sheet – A lightweight, flexible solution for bottom sheets in Vue apps. megaarmos
⚙️ Act – A Go-powered tool that looks at your repo’s GitHub Actions, uses Docker to grab the necessary images, and runs the tasks locally. Nektos
⚙️ Svar – A new suite of open source UI components for Svelte, React, and Vue. XB Software
📰 Classifieds
Optimize Your Next.js App’s Metadata – Discover practical ways to boost your site’s SEO and visibility by customizing metadata in Next.js.
🎹 STRICH: Add blazing fast and reliable 1D/2D Barcode Scanning to your web apps. Free demo app and 30-day trial available.
Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by Lattice, Bilt Rewards, etc.
Perspective 3.3 – Streaming data viz and analytics component. The core is written in C++ and compiled to WebAssembly. The homepage shows it off well.
eslint-plugin-functional 8.0 – ESLint rules to disable mutation and promote functional approaches.
React Testing Library 16.2 – DOM testing utils that encourage good practices.
Happy DOM 16.6 – Cross-runtime JS implementation of a web browser sans UI.
PowerGlitch 2.4 – Tiny library to add a ‘glitch’ effect to images on the Web.
🤖 node-llama-cpp 3.4 – Run LLMs locally with bindings to llama.cpp.
Faker 9.4 – Generate fabricated data to your heart’s content.
Gridstack.js 11.3 – Build responsive interactive dashboards quickly.
Mineflayer 4.25 – Create Minecraft bots in JavaScript.
The projects that shaped JavaScript in 2024
#718 — January 10, 2025
🗓️ Friday is the new Thursday! If you were a JavaScript Weekly reader several years ago, you might remember it always landed on Fridays and after getting caught out by a variety of big news items landing on Thursdays in recent years, we’re back 😉
__
Your editor, Peter Cooper
JavaScript Weekly
⭐ 2024’s JavaScript Rising Stars — It’s time to fully wave goodbye to 2024, but not before Michael Rambeau’s annual analysis of which JavaScript projects fared best on GitHub over the past year. Even if you dislike GitHub stars as a metric for anything, this remains a great way to get a feel for the JavaScript ecosystem and see what libraries and tools have mindshare in a variety of niches. A fantastic roundup as always.
Michael Rambeau
A Look at Import Attributes — It’s always a pleasure to see Dr. Axel blogging about JavaScript again, and he’s back with one of his typical deep dives into a newer ECMAScript feature: import attributes. This feature provides an inline syntax for attaching metadata to module imports such as for importing non-JavaScript modules (e.g. JSON, WASM or CSS).
Dr. Axel Rauschmayer
How to Enable End-to-End Testing with Synthetic Monitoring — Synthetic Monitoring helps you launch new features with confidence and speed. Learn how you can create robust end-to-end test suites, spend less time on false positives, and proactively catch errors before they get to production.
Datadog sponsor
Node’s New Built-in Support for TypeScript — Node.js v23.6.0 (Current) has just been released and makes Node’s new type-stripping features work by default, so you can just run node file.ts and it Should Just Work™. Dr. Axel explains how it works and what the limitations are.
Dr. Axel Rauschmayer
IN BRIEF:
🥊 The Deno vs Oracle fight over the JavaScript™ trademark continues as Oracle has informed Deno they’re not going to voluntarily relinquish the mark. Deno’s job now is to show how JavaScript has long been used as a generic term and hasn’t been controlled by Oracle.
The Express.js team has posted about the project’s recent revival and its plans to push Express.js forward in 2025.
❄️ The ‘WinterCG’ Web Interoperable Runtimes Community Group, an effort to promote standards around runtime interoperability of JavaScript runtimes, has moved to Ecma International and is now known as WinterTC (TC55).
📺 Node.js creator Ryan Dahl gave a talk at GOTO Chicago 2024 about Deno 2, covering Deno’s differences to Node and what Deno 2.0 (and JSR) has to offer JavaScript developers, complete with live demos.
RELEASES:
pnpm 10 – The efficient npm alternative no longer runs lifecycle scripts of dependencies for security reasons, hashing algorithms have been upgraded to SHA256, and lots of minor tweaks.
Bun v1.1.43 – The high performance runtime gets first class S3 support, an HTML bundler, and can output V8 heap snapshots (which is quite something as Bun uses JavaScriptCore, not V8).
🔠 Tesseract.js 6.0 – The popular pure JS multilingual OCR library has resolved a variety of memory leak issues.
Docusaurus 3.7 – The popular docs-oriented site generator goes full React 19.
Node.js v22.13.0 (LTS) – The permission model system is now stable.
Puppeteer 24.0, RxDB 16.0, Ember 6.1, QuickJS 0.8
📒 Articles & Tutorials
The Future of htmx — htmx is an increasingly popular way to enhance HTML and actually write less JavaScript on the frontend. This post reflects on how htmx would like to be ‘the new jQuery’, not least in the sense that one of the project’s goals is to push the ideas of htmx into the HTML standard itself, as in this set of proposals.
Gross and Petros
You Don’t Need Next.js — As much as Next.js is considered the React meta-framework of choice, if your requirements are modest, simply going with plain React offers numerous benefits in terms of simplicity and speed, as seen here.
Benny Kok
Introducing Clerk SDKs for Vue and Nuxt — Official @clerk/vue & @clerk/nuxt SDKs for authentication integration with pre-built UI components in Vue/Nuxt apps.
Clerk sponsor
Using TypeScript Without Build Tools — Chris Coyier enjoys the benefits of TypeScript while developing, but actually compiling it to JavaScript in various scenarios is less endearing. We’ve learnt (above) that Node can now run .ts files directly, but what other projects support the use of TypeScript without build tools?
Chris Coyier
📄 Using a JavaScript Component Inside a Haskell App – Did you know Haskell’s main compiler supports integrating with JavaScript? Mateusz Goślinowski
📄 Crafting a Dreamy Particle Effect with Three.js and GPGPU Dominik Fojcik
📄 Build Your Own Site Speed Testing Tool with Puppeteer Henry Price
📄 Sharing a Variable Across HTML, CSS, and JavaScript Chris Coyier
📄 Benchmarking GraphQL Solutions in the JS/TS Landscape Tomasz Nieżurawski
📄 Shallow Clones vs Structured Clones Phil Nash
🛠 Code & Tools
PostalMime: A Universal Email Parsing Library — An email parsing library happy in most JS runtimes. Takes the raw source of emails and parses them into their constituent parts.
Postal Systems
trimMiddle(): The Missing String Trim Method? — If you’ve got a long string and want to keep the start and end and truncate in the middle, this is for you. There’s a live demo here and GitHub repo.
Christian Heilmann
Fully Customizable Form Builder that Blends Seamlessly with Your JS App — Need a survey solution you control? With SurveyJS, customize your form builder’s look and functionality. Try it for free.
SurveyJS sponsor
Introducing @smoores/epub: A Package for Working with EPUB Files — EPUB is a popular e-book file format and this new library provides a way to both read and write them. npm package link.
Shane Friedman
Tipex: An Advanced Rich Text Editor for Svelte — Based on the popular Tiptap editor framework, it’s customizable, has theming support, and is Svelte 5-ready. Here’s a live example.
Friend of Svelte
React-Toastify 11: In-Page Notifications Made Easy — There’s an elaborate demo page here but essentially it’s a flexible, easy to style ‘toast’ style notifications system with many years under its belt. GitHub repo.
Fadi Khadra
Electrobun: A New JS Cross-Platform Desktop App Toolkit — A fresh take on the concept covered by Electron and Neutralinojs, except based around Bun. It’s early days, though, with only ARM-based Macs supported for now.
Blackboard Technologies inc.
Tagify 4.33: An Elegant Input Component for Tags — The polished demos show a lot of effort has been put in here. GitHub repo.
Yair Even-Or
📊 Recharts v2.15.0 – D3-powered React chart library now with React 19 support.
Discordeno 21.0 – Discord API library for Node, Deno and Bun.
htmlparser2 10.0 – Fast and forgiving HTML and XML parser.
Ts.ED 8.4 – Node + TypeScript framework on top of Express.
📊 ApexCharts 4.3 – Popular JS charting library. (Demos.)
zx 8.3 – Google’s tool for better Node.js shell scripting.
Octokit.js 4.1 – ‘Batteries-included’ GitHub SDK.
📰 Classifieds
Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by Lattice, Bilt Rewards, etc.
🔹Sell to enterprise with a few lines of code with WorkOS — the modern, flexible identity platform for B2B SaaS. Integrate SSO, SCIM and FGA in minutes, not months.
🎁 And one for fun?
📄 Play Tetris in a PDF File — (direct link to PDF)
I’ll let you decide if this one is fun or frightening! Whether or not this will work depends on your PDF reader or browser support, but it works with Chrome and Firefox, at least.
The PDF document format supports embedded JavaScript and this experiment uses it to implement a game of Tetris. The developer, Thomas Rinsma, has used Python to output the PostScript that includes the game’s JavaScript. Couple that with the fact many browser PDF renderers are themselves implemented in JavaScript (e.g. PDF.js) and you have a veritable Matryoshka doll of technologies at play here.