The heaviest npm packages

#​704 — September 12, 2024

Read on the Web

JavaScript Weekly

The State of ES5 on the Web — Some of the earlier JavaScript build tools focused on allowing developers to write modern JavaScript code that could still run on the browsers of the time by compiling code down to ES5. Time has moved on, but have the tools or popular libraries? Philip investigates, and shares some recommendations.

Philip Walton

📊  The Top 5000 npm Packages by Size, Downloads, and Traffic — An interesting Google Sheets spreadsheet listing the top 5000 npm packages by package size, weekly downloads, and weekly traffic. One package is responsible for 278 terabytes of traffic per week, but the top 5000 add up to several petabytes.

Google Sheets / danhorus

Run GitHub Actions Up to 2x Faster at Half the Cost — Blacksmith runs your GitHub Actions substantially faster by running them on modern gaming CPUs. Integrating Blacksmith is a one-line code change. 100+ companies like Ashby, Superblocks, and Slope use Blacksmith to help developers merge code faster.

Blacksmith sponsor

Announcing TypeScript 5.6 — The latest TypeScript has landed with full support for iterator helpers, support for arbitrary module identifiers, –noUncheckedSideEffectImports to import modules without importing any values, and more — all covered in the always thorough release post.

Daniel Rosenwasser (Microsoft)

Is PHP the New JavaScript? — I’m no real fan of PHP, but there’s been a lot of discussion on social media around increased interest in PHP by developers who’d usually steer clear of it, largely thanks to Laravel. This post tells the basic story and explains what Laravel brings to the table.

Dave Kiss (Mux)

IN BRIEF:

Cloudflare Workers has greatly improved its npm package support. The popular serverless platform now supports a lot more Node.js APIs.

🎉 They don’t happen often, but Frontend Masters is currently running a sale on its courses, which now includes a JS performance learning path.

The ESLint project has announced its latest version support policy with ESLint v8.x going into end of life next month.

📅 Vercel’s Next.js Conf 2024 is taking place this October 24, both in person in San Francisco, as well as online.

RELEASES:

Storybook 8.3 – Frontend component and UI workshop. Now with first class Vitest support.

ESLint 9.10 – Now with types included.

pnpm 9.10, Jasmine 5.3, Relay 18.0

📒 Articles & Tutorials

The Web’s Clipboard, and How It Stores Data of Different Types — An interesting exploration of how things currently work with copy and pasting on the web, how different data types are treated, and what the Web Custom Formats proposal is putting forward.

Alex Harri Jónsson

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. Just added support for Node.js built-in node:test framework!

Wallaby Team sponsor

Building the Same App Using Various Web Frameworks — A scientist at Amazon who usually works in Python with a minimum of JavaScript on the frontend wondered if a more modern web framework would suit him better in 2024. To try this out, he tried Next.js, SvelteKit, and the Python-flavored FastHTML.

Eugene Yan

Brand New Performance Features in Chrome DevTools — A helpful look into Chrome’s updated Performance Panel and all the different metrics it shows off to help you improve the performance of your site.

Umar Hansa (DebugBear)

React and FormDataFormData is ironically both the ‘newest and yet oldest’ standard for accessing form data. Here are some practical ways for using it with TypeScript.

Brad Westfall

Automate Neon Schema Changes with Drizzle and GitHub Actions — Learn about schema migrations and how they can be applied to a Neon database with Drizzle and GitHub Actions.

Clerk sponsor

📄 The Secrets of JavaScript’s delete Operator Zachary Lee

📄 Deploying a Next.js App to Production on Any Server Kurta Payjama

📄 How to Create a Weekly Google Analytics Report That Posts to Slack Paul Scanlon

📄 Top 10 Angular Architecture Mistakes You Really Want To Avoid Tomas Trajan

📄 How to Fix ESLint Violations with AI Assistance Docker Labs

📺 Why You Should Use Redux in 2024 Mark Erikson

🛠 Code & Tools

Biome v1.9 Released; Turns One Year Old — Biome started life as a fork of Rome, a bold attempt to create an all-in-one ‘frontend toolchain’. As of v1.9, Biome can format and lint CSS, GraphQL, and JavaScript, does it very quickly, yet has 97% compatibility with Prettier.

Victorien Elvinger & Biome Core Team

Express.js 5.0 Released — The seminal Node.js webapp library seemed to take a nap for a few years, but development was reinvigorated earlier this year. v5.0 brings a variety of modern tweaks and dependency updates, though it’s still tagged next at the npm registry. (Official homepage and v5.x API docs.)

Wesley Todd

✂️ Cut Your QA Cycles Down from Hours to MinutesQA Wolf’s AI-native approach gets engineering teams to 80% automated end-to-end test coverage and helps them ship 2x faster by reducing QA cycles from hours to minutes.

QA Wolf sponsor

Jimp 1.6: Manipulate Images without Native Dependencies — Most image libraries, such as Sharp, use native dependencies to do the heavy lifting, but Jimp can handle numerous formats directly for blurring, color tweaks, resizing, rotation, etc. Originally for Node, Jimp now works in the browser tooGitHub repo.

jimp Contributors

Valtio 2.0: Proxy State Made Simple — Turns objects into self-aware proxies so you can access state and subscribe to changes outside of components, add computed properties and more. Designed for React and compatible with Suspense, but can also be used with vanilla JS.GitHub repo.

Daishi Kato

Violentmonkey: A Way to Run Userscripts in the Browser — There have been many extensions to run your own custom JavaScript automatically on certain Web pages over the years, but Violentmonkey seems to currently be one of the better and well maintained open source ones. GitHub repo.

Violentmonkey Team

🔎 Orama 2.1 – Dependency-free, full-text and vector search engine for all JS runtimes, with typo tolerance, filters, facets, stemming, and more.

create-fastify 5.0 – Rapidly generate a Fastify project. It just takes npm init fastify app_name to get started.

file-type 19.5 – Detect the file type of a file, stream, or data. Now with WebVTT support.

TWGL.js 6.1 – Helpers for working with low-level WebGL from JS.

🎨 Chroma.js 3.1 – JavaScript color manipulation library.

Pixi.js 8.4 – Fast, flexible 2D WebGL renderer.

Reverse engineering minified JS with ChatGPT

#​703 — September 5, 2024

Read on the Web

JavaScript Weekly

An SSR Performance Showdown — Fastify’s Matteo Collina set out to find the current state of server-side rendering performance across today’s most popular libraries. The first attempt faced negative feedback due to implementation issues, but the showdown has been improved and re-run.

Matteo Collina

Announcing Vue 3.5 — While v3.5 is a minor release, it’s one Vue users will love, with big performance and memory usage improvements in its reactivity system. With no breaking changes, upgrade and watch memory consumption drop.

Evan You

WorkOS: The Modern Identity Platform for B2B SaaS — WorkOS is a modern identity platform for B2B SaaS, offering flexible and easy-to-use APIs to integrate SSO, SCIM, and RBAC in minutes instead of months. It’s trusted by hundreds of high-growth startups such as Perplexity, Vercel, Drata, and Webflow.

WorkOS sponsor

Reverse Engineering Minified JavaScript with ChatGPTWriting new code with AI is one thing, but could it be even better at understanding existing code that you’re struggling to grok? Yes, it seems.

Frank Fiegel

Inside ECMAScript: JavaScript Standards Get an Extra Stage — After nine years of annual updates, TC39 has tweaked the process to make rolling out new features faster and smoother. The so-called ‘Stage 2.7’ has been around for a while, but this is a neat primer to what it represents.

Mary Branscombe (The New Stack)

IN BRIEF:

⭐ Vercel goes deep into what’s new in React 19.

💰 Alpine.js creator Caleb Porzio shares his tale of passing $1m on GitHub Sponsors.

Bye NgModules, the future of Angular is standalone! Angular v19 will make standalone: true the default for components, directives, and pipes. This is already the recommended best practice, however.

Angular’s product lead, Minko Gechev, has also shared a little about what it means to mange the Angular project.

OpenAI has switched ChatGPT from Next.js to a Remix-based app, according to Remix’s Ryan Florence on X.

🇵🇱 Poland’s WarsawJS community is holding a 10th anniversary meetup on September 11. They invite you to ▶️ watch live on YouTube.

🤖 Lee Robinson shows off ▶️ the latest enhancements to Vercel’s v0, an AI-based tool for creating apps and components from prompts you supply.

[Workshop] Fix Your Front-End: JavaScript Edition — Learn practical tips to make debugging more tolerable. Join our JavaScript team live for a masterclass on Sept 24.

Sentry sponsor

RELEASES:

Node.js v22.8.0 (Current) – Adds a new API for enabling on-disk code caching at runtime, as well as options to set thresholds for code coverage success.

Astro 4.15 – The popular content site framework stabilizes Astro Actions, a solution for fully type-safe backend functions.

Jimp 1.3 – Pure JS image processing library for Node.

Turborepo 2.1, Puppeteer 23.3, Mermaid 11.1

📒 Articles & Tutorials

▶  Behind the Scenes: The Making of VS Code — A detailed conversation with two of the popular editor’s principal engineers on what makes it tick. VS Code is surely one of the world’s most widely distributed JavaScript-powered apps.

Holland, Rieken and Pasero (Microsoft)

How I Created a 3.78MB Docker Image for a JavaScript Service — The smallest JavaScript app container images tend to run into tens of megabytes, but tailoring your app to run on a lighter runtime like llrt can yield striking results.

Shenzilong

Leave Forms to SurveyJS and Get Back to What You Love Coding — Extensible JavaScript libraries for form management. Drag-and-drop UI, JSON form definitions, and seamless integration with any backend for full data control.

SurveyJS sponsor

Exploring Goja: A Go-Powered JavaScript RuntimeGoja is a pure Go(lang) JS runtime that makes it possible to embed JS into Go apps.

JT Archie

How to Use React Compiler — The compiler feature in React 19 is generating a lot of buzz — this “complete guide”, as described by this author, covers much of what you’ll need to get started.

Tapas Adhikary

Multithreaded Programming in Node.js using AtomicsWorker threads enable you to write multi-threaded Node apps, but sharing resources across them can quickly become tricky. Atomics can help avoid some of the pain.

Pavel Romanov

📄 A Complete Guide to Beginning with JavaScript – A rather epic article packed with background knowledge, context, and third party resources for starting a modern JavaScript learning journey. Cody Lindley

📄 Implementing Filtered Semantic Search Using pgvector and JavaScript Team Timescale

📄 How to Quickly (and Weightlessly) Convert Chrome Extensions to Safari Nina Torgunakova (Evil Martians)

📄 How Sentry Uses Mutation Testing on its JavaScript SDKs Lukas Stracke (Sentry)

🎤 Talking Deno 2 with Ryan Dahl Syntax․fm Podcast

🛠 Code & Tools

jsdiff 6.0: A JavaScript Text Diffing Implementation — Can compare strings for differences in various ways including creating patches. There’s an online demo. (Don’t worry – we’re not going monthly ;-))

Kevin Decker

Redwood v8.0 Released — A long standing, opinionated React & GraphQL (and/or RSC) full-stack framework that covers all the bases for professional dev teams with best-in-class tool support. v8.0 introduces a background jobs system, Docker support, and easier SSR and RSC setup.

Redwood Team

Tests Are Dead. Meticulous Is Here — Automatically creates & maintains E2E UI tests. Zero flakes. Backed by YC, CTO of GitHub, CPO of Adobe, CEO of Vercel.

Meticulous sponsor

🇬🇧 GOV.UK Vue 1.0: Build Vue Apps, the British Way — The UK government is known for having an effective, well-designed site where Brits can complete various official tasks. Now you can get all of their components in Vue 3 form.

UK Government

👀 style-observer: A Mutation Observer for CSS — Attach JavaScript callbacks to changes in computed values of CSS properties.

Bramus Van Damme

Goxygen: Quickly Generate a Go Backend for a JS Project — A tool that sets up a new Go-based project with Angular, React, or Vue in the front-end, and Docker and Docker Compose files to make it all work.

Sasha Shpota

Typist 7.0: Tiptap-Based Rich Text Editor Component — Simple and opinionated. You can try several examples in the sidebar. Well suited for basic rich text situations like writing comments or messages and has a single-line mode.

Doist

Belt: A New Tool for Starting React Native Apps — A CLI tool for starting a new React Native app that takes various mundane decisions away from you and uses tooling and conventions established by a productive app development team.

Thoughtbot

Tinybase 5.2 – Powerful reactive data store for local‑first apps. Now with Postgres support (which can even work in-browser!)

jsdoc-to-markdown 9.0 – Generate Markdown docs from JSDoc-annotated code.

LogTape 0.5 – No-dependency logging lib for Deno, Node, Bun & browsers.

Plasmo 0.89 – Imagine Next.js but for building browser extensions.

JsonTree.js 3.0 – Customizable tree views for JSON data.

Poku 2.6 – Cross-platform JavaScript test runner.

Faker 9.0 – Generate large amounts of fake data.