e18e

@e18e.dev

https://e18e.dev (Ecosystem Performance) is a community initiative to bring together people who are passionate about improving performance in the JS ecosystem. Get involved at https://chat.e18e.dev 🚀

A new text encodings library, iconv-nano, was posted in the @e18e.dev discord. A day later, the author (Jeremy) is collaborating with @hyeseong.kim on making it ~80% smaller! 🤯 Always impressed by how e18e has managed to join up people with knowledge in such niche subjects 😄

ESLint jumped in install size by 2MB recently from a basic dependency update. Here's a short thread of the observations 🧵

The npm package went from 1.56 MB to 609 kB (−61%). v11 ships ES modules only, so the CommonJS, UMD and duplicate builds, and most source maps, are gone. The runtime you ship is the same ~40 kB of ESM.

2 bars showing the total package size of Preact, in 10.29.8 it's at 1.56MB and at 11.0.0 609KB which is 61% reduction in size.

Thanks to the constant reminders by our @e18e.dev friends, we just halved Babel's install size :) (note: due to how npmx.dev computes package size, if you look at it now it looks like the improvement was already in 8.0.0)

Screenshot from npmx.dev

Not all heroes wear capes... at least the @e18e.dev team doesn't. They’re on a mission to make the JS ecosystem lighter and faster. So we’re donating to them as part of our OSS donation program. They've already reduced node_modules size and made Node.js tooling much faster, and we appreciate it!

Evil Martians@evilmartians.com · 4w ago

We’re donating to DOMPurify as part of our open source donation program. DOMPurify, built and maintained by Cure53, is the best tool to protect your website from XSS attacks. They are doing an amazing job at tracking all new potential attacks. We respect and rely on their findings.

Updates in the recent Node Modules Inspector: - Better module type detection (now it recognizes binary packages) - Colorizing the charts by module type, published age, or duplicated versions to find them easily

the e18e GitHub action noticing that ESLint introduced a duplicate dependency recently 👀 always keep an eye on your deep dependency changes! this one is because a ESLint bumped a dep whose own deps include duplicates (amusingly all of those are maintained by the same person, probably an accident!)

a screenshot of a github action showing that two copies of "hookified" are installed in the repo.

@bomb.sh/tty is the low-level layout engine and input parser that powers our forthcoming tui libraries. think we can get this even smaller, but our baseline is now v0.9.0 at 113 kB (0 deps) compared to v0.6.0 at 830 kB (0 deps) @opentui/core at 21 MB (9 deps) ink at 7.8 MB (36 deps)

bombshell@bomb.sh · last mo.

@bomb.sh/tty v0.9.0 is out! 🙌 💢 improved border defaults 🥕 hardware-driven caret rendering 💬 unicode 17 support 🧠 up to 50% memory reduction 🤏 size optimization (down to 113 kB install size) and we have a changelog now github.com/bombshell-de...

install size graph for @bomb.sh/tty
v0.7.0 ~120 kB
v0.8.0 ~135 kB
v0.9.0 ~113 kB

The @e18e.dev framework tracker is nearing an official release. We have worked hard to include a wide array of stats on meta-framework performance, including data from HTTP Archive. See below for a sneak peek at the percentage of sites in each framework that meet the benchmark. 🧵

BildBild

❌🛢️ unbarrelify v1.1.4 is out Fully automated cleanup: unbarrelify rewrites consumers to import directly from source, then deletes the barrel files. Why? Read more at github.com/webpro-nl/un... Trust me, you don't want to do this by hand and your agent will screw up and bill you nonetheless. 👇

It’s easy to complain about what could be better in the JS ecosystem. James takes a different approach: he sees something that could be improved and gets to work. Through @e18e.dev & many other projects, he’s helping make our shared OSS infrastructure better. So happy to have him at ZurichJS Conf.

Bild

Alongside the WebContainer query that gives you the full info, the web version of Node Modules Inspector also gets a Registery Qurey more that gives you the result almost **Instantly** node-modules.dev