The reality of porting Deno code to Node
#598 — October 28, 2025
Awesome Node: Over 500 Curated Packages, Resources and Links — It’s been more than four years since we linked to Sindre’s handy resource, but it continues to get updates and tweaks (and, if you want, you can contribute a submission too – though the bar is quite high).
Sindre Sorhus
💡 There are several similar lists you might find useful too, including Awesome Node.js Security resources, Awesome SaaS Templates, Awesome npm Security Best Practices, and Awesome Regex.
Ship Code That Breaks Less: Sentry AI Code Review — Sentry’s AI Code Review inspects PRs using real error and performance signals from your codebase. It surfaces high-impact bugs, explains root causes, and generates targeted unit tests in separate branches. Free while in open beta.
Sentry sponsor
IN BRIEF:
To LTS or not to LTS? There’s a quirk right now where no LTS release of Node.js is designated ‘active’ while we await the imminent release of a new version of v24. This quirk caused Node’s downloads page to break last week. As a fix, Node v24.10.0 is now offered as the active LTS release, though that version was released as ‘current’ (the role now taken by v25).
Lizz Parody shares a quick update on the state of the Express.js project and its recent steps forward.
Node-RED is a popular ‘low code’ programming environment built on top of Node. Node-RED Con 2025 is a free, online event taking place next week (November 4) highlighting how Node-RED is being used in industrial engineering, smart homes, and even to play Factorio!
What I Learned Porting Mastro from Deno to Node — Mastro is a web framework and site generator originally for Deno only. But if Deno is compatible with Node, is it easy to make Deno-facing code run on Node too? Not exactly, but it’s do-able!
Mauro Bieg
Building from the Base Up: Rethinking Starter Kits in AdonisJS — Adonis is a modern web framework for Node that offers a lot out of the box and its newest ‘starter kit’ includes a set of base components (e.g. buttons, form fields, and layouts) along with a signup and login system to help you get started building an app quickly.
Harminder Virk
📄 Rethinking Async Loops in JavaScript – A look at some quirks with using await in loops or map() and some alternatives that actually achieve what you were probably trying to do. Matt Smith
📺 How I Built an Auth System to Handle 1.9B Logins Per Month with Node Sergio Salcedo
📄 Will New npm Security Measures Stop the Next Shai-Hulud? ReversingLabs
🛠 Code & Tools
Vitest 4.0 Released: The Vite-Native Testing Framework — The Vite-powered, Jest-compatible testing framework adds visual regression testing, makes ‘Browser Mode’ stable (runs tests in a browser directly), adds Playwright Traces support, and more. You can compare it with other test runners here.
VoidZero and Contributors
💡 VoidZero’s Alexander Lichter has put together a ViteConf 2025 recap covering recent news in the Vite ecosystem, like Vite+, Oxlint’s JS plugin support, Nitro v3, and more.
👍 emoji-regex: A Regular Expression to Match All Emoji-Only Symbols — A regex-based approach to match emoji symbols and sequences (including textual representations of emoji) as per the Unicode Standard.
Mathias Bynens
Automate Invoice Creation with a Simple Python Script — Learn to use Word templates + JSON data to generate custom invoices via the Foxit Document Generation API.
Foxit Software sponsor
💬 GramIO: A Framework for Creating Telegram Bots — A multi-runtime (Node, Bun and Deno) framework for creating bots for the Telegram messaging app using Telegram’s official Bot API. – GitHub repo.
Kravets
💡 telegraf.js is another Node-specific option in this space.
Gasket: CLI Tool to Discover ‘Bridges’ Between JavaScript and Native Code — Dynamic analysis tool that inspects the in-memory layout of JavaScript function objects to identify those that cross the language boundary. This is quite niche, but built by the authors of a paper about identifying such bridges for security purposes.
Alexopoulos and Sotiropoulos
workerpool 10.0: Offload Tasks to a Pool of Workers — A long established thread pool library that works not only on Node but also in the browser.
Jos de Jong
OpenAI Node 6.7 – The official Node library for OpenAI’s family of APIs. Adds support for Zod 4 schemas.
Electron 39.0 – The cross-platform desktop app framework. Upgrades to Chromium 142.
vm2 3.10 – Sandbox for Node that can run untrusted code with whitelisted modules.
ESLint Markdown Language Plugin 7.5 – Lint JS/TSX code blocks in Markdown documents.
pnpm 10.19 – Fast, space efficient package manager.
Prisma 6.18 – Next-gen Node.js + TypeScript ORM.
node-soap 1.6 – A SOAP client and server library.
Hexo 8.1 – Popular blog framework/ generator.
node-redis 5.9 – Redis/Valkey client library.
ini 6.0 – npm’s INI file parser/serializer.
📰 Classifieds
🐱 ConfigCat Feature Flag Service lets you release and roll back features safely without code changes. Set it up in minutes! Save 25% now!
📢 Elsewhere in the ecosystem
A roundup of some other interesting stories in the broader landscape:
vite-plugin-use-golang is a curious new Vite plugin that lets you add a “use golang” directive to the top of a ‘JavaScript’ file but then actually write Go code instead (which is then compiled to WebAssembly).
It’s less of a question on the backend, but Jake Archibald considers the benefits of importing vs fetching JSON, now that the former is possible in most browsers.
Over on X, Tzvetan Milkov shows off an interesting proof of concept of React driving the Dear ImGui GUI library with the Hermes JS engine to create fully native apps.
You Already Have a Git Server is a fantastic reminder of the decentralized power of Git and ssh.
At last month’s CascadiaJS, Annie Sexton gave ▶️ a talk sharing the origin story of JavaScript.