Sign in

James

@43081j.com
2.4K followers 383 following 3.4K posts

Lead: @e18e.dev - tinylibs - chai Maintainer: parse5 - @unjs.io - @bomb.sh - chokidar - @npmx.dev - @vueuse.org - prettier Sponsor me at github.com/sponsors/43081j github.com/43081j / Focusing on ecosystem perf & tooling 🥳

PostsRepliesMedia
James @43081j.com · 1h
chai v6.3.0 🎉 a few bug fixes, and now published via staged publishing 🚀
npmx.dev
chai - npmx
BDD/TDD assertion library for node.js and the browser. Test framework agnostic.
030
James @43081j.com · 7h
Very true. We've always built PoCs, drafts, etc. I guess it is much easier to polish a PoC into something that looks "stable". Then those are what we're seeing It does mean trust has changed. I'm hesitant to use something like that in case it ends up unmaintained or full of bugs
110
James @43081j.com · 7h
not aimed at anyone in particular. just a trend we see these days because AI has made it easy. leaving a trail behind you of good but effectively abandoned projects because you had another idea today.
120
James @43081j.com · 7h
at least its good fun watching the AI heavy repos increase in size every release, gives good graphs! 😂
070
James @43081j.com · 7h
one great project is better than many half-baked ones you're going to lose interest in tomorrow
2200
James @43081j.com · 9h
tinyrainbow 3.2.0 🌈 - hex colour support (`colors.hex('#303')`) - rgb colour support (`colors.rgb(51, 0, 51)`) - perf improvements (fastest in many cases now!) ❕ If you support a new enough Node, remember you can use `styleText` (built-in!) instead
npmjs.com
081
Reposted by James
The Zena Programming Language @zena-lang.dev · 29/09/2026
New blog post on zena-lang.dev: Designing a Programming Language for the AI Era zena-lang.dev/blog/2026/09... Includes why I think a language good for humans and WebAssembly is good for AI, and why Zena is a project that's optimistic that humans have a place in software development.
zena-lang.dev
Designing a Programming Language for the AI Era
What makes a programming language effective when AI agents write, test, and review code, and why being optimized for WebAssembly is being optimized for AI.
01410
James @43081j.com · 28/09/2026
the best kind of PR 😀
a screenshot of a GitHub PR showing dependency changes: 729KB of dependencies removed.
0281
Reposted by James
Jens Rømer @jensroemer.com · 25/09/2026
I've been helping out @43081j.com on github.com/43081j/tangl..., and wanted a way to prioritize what to work on. I had an assumption that repos on Tangled, who have GH workflows but not yet Tangled workflows would be great candidates. So I did a quick script that goes through repos on Tangled...
github.com
GitHub - 43081j/tangleflow: Convert GitHub actions workflows to tangled pipelines and vice versa.
Convert GitHub actions workflows to tangled pipelines and vice versa. - 43081j/tangleflow
2132
James @43081j.com · 24/09/2026
Me and @paulvall.dev have more 😅 have just been distracted!
151
James @43081j.com · 24/09/2026
Very good point! We will add one 🙏
040
James @43081j.com · 24/09/2026
Today we're launching ai-policy.dev! A collaboration of me, @danielroe.dev and @matteogabriele.npmx.social - this provides a few human curated AI contribution policies you can choose from. Our hope is that this will help you better define your stance and what kind of contributions you accept 🙏
ai-policy.dev
AI Contribution Policies
Ready-to-use AI contribution policies for open source projects.
1313540
James @43081j.com · 24/09/2026
looking forward to seeing all the great people of the atmosphere again 💙
atmo.rsvp
AtmosphereConf 2027
The third edition of the global gathering for the Atmosphere Community is taking place in Amsterdam, April 29th - May 2nd. This includes side-events and main conference days. Please RSVP with your i...
1140
James @43081j.com · 23/09/2026
today we released a new library as part of tinylibs: tinyps ⚙️ this exposes a few utilities for dealing with system processes. you can use it to list, kill and find processes amongst other things. check it out and let us know if anything needs improving! 🙏
github.com
GitHub - tinylibs/tinyps: A tiny library for dealing with spawned processes
A tiny library for dealing with spawned processes. Contribute to tinylibs/tinyps development by creating an account on GitHub.
1191
James @43081j.com · 23/09/2026
it manages which version of Python is installed (installs it for you like mise, etc) and manages your Python dependencies (e.g. from pyproject.toml)
100
James @43081j.com · 23/09/2026
was curious what the various increments were, so here's the pnpm size bumps labelled!
A poorly annotated chart of the size of pnpm to install. At 12.0.0 it was rewritten in Rust (+27MB). At 12.1.0 it introduced more complex task orchestration (+1MB). At 12.4.0 it introduced support for Python and Rust packages (+2MB). At 12.5.0 it introduced support for Python env/runtimes (+3.5MB)
4150
James @43081j.com · 22/09/2026
check it out! some pngwn goodness ✨
0100
James @43081j.com · 22/09/2026
was bugging me that update-notifier is 1MB+ so i made an alternative if anyone wants to use it! nano-notifier is ~275KB much of that is from clack, which itself is used by many of the consumers of update-notifier already, so will be de-duped.
github.com
GitHub - 43081j/nano-notifier: A somewhat small tool for notifying when your package has updates available.
A somewhat small tool for notifying when your package has updates available. - 43081j/nano-notifier
0161
Reposted by James
~paul @paulvall.dev · 21/09/2026
understanding is the one part of software that still runs at human speed. that's not a bottleneck. that's where we're still needed. i wrote about why open source gets to choose its own pace.
paulvall.dev
we need time to assimilate
the reason behind one sort function got lost in a rewrite, and a tarball came out nine times bigger. on comprehension debt, peter naur, and why open source should slow down.
3212
James @43081j.com · 22/09/2026
Lots of relatable things here. Let's all slow down a little 😄
110
James @43081j.com · 21/09/2026
New version of module replacements 🎉 Lots of micro utilities added 🤏
github.com
Release 3.4.0 · e18e/module-replacements
What's Changed feat(preferred): add npm-check to replacements by @dreyfus92 in #965 feat: mention Temporal in replacements by @gameroman in #992 fix: move stream.Duplex to native manifest by @game...
0131
James @43081j.com · 21/09/2026
giving old domains some use, we've published a basic site on ESM and how to migrate to it at esmodule.com if anyone wants to contrib a guide or improve one, please do! thanks to @iamstan.dev for putting the domain to good use 🙏
esmodule.com
ES Modules - The JavaScript module system
A guide to ES modules, the module system of JavaScript.
2288
James @43081j.com · 20/09/2026
cooking something up with @matteogabriele.npmx.social and @danielroe.dev 👀
0402
James @43081j.com · 20/09/2026
i also have this but just can't remember what i called it 😂 all good, i made it again now!
010
James @43081j.com · 20/09/2026
started a project somewhere on one of my laptops. can't remember which laptop and which directory. seems to have vanished 😂 time to do it again!
3221
James @43081j.com · 18/09/2026
Good times 😀 Babel getting a bunch smaller! Tarball size also dropped from 192KB to 40KB
0240
James @43081j.com · 18/09/2026
If you can make an issue to explain a bit more, I'd be happy to look into that
000
James @43081j.com · 18/09/2026
did you know: `cross-spawn` is no longer needed if you use tinyexec (or just use tinyexec anyway as it is smaller!) if you're using `_parse`, tinyexec also exports `normalizeSpawnCommand` which does the same job
1100
Reposted by James
Astro @astro.build · 17/09/2026
Ecosystem performance meets Astro. @florian-lefebvre.dev is here to explain how the @e18e.dev project is making your favorite framework smaller and faster ⚡️
youtube.com
e18e x Astro | Astro Together FRA 2026 × Seibert
One dependency at a time, we can make the JavaScript ecosystem faster and leaner. But what exactly is e18e, and why should you care? Florian Lefebvre explores e18e, Astro’s role in the movement, the…
0399
Reposted by James
Evil Martians @evilmartians.com · 17/09/2026
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!
2518
James @43081j.com · 17/09/2026
new version of the @e18e.dev ESLint plugin 🚀 This works with both ESLint and oxlint to detect code which can be modernised or made more performant. Combine it with knip for good times!
github.com
GitHub - e18e/eslint-plugin: The official e18e ESLint plugin for code modernization and performance best practices
The official e18e ESLint plugin for code modernization and performance best practices - e18e/eslint-plugin
0275
James @43081j.com · 17/09/2026
Solid doing good stuff as always 😀
080
James @43081j.com · 17/09/2026
Super nice work by the team here 🙏
080
James @43081j.com · 16/09/2026
TIL this is valid > import from from 'mod'; makes sense but assumed it'd be reserved 😅
3220
James @43081j.com · 16/09/2026
Yup exactly this! And often the answer is no, unfortunately. Same benefit of writing things down on paper, it forces you to understand it better
010
James @43081j.com · 15/09/2026
i often just skip reading the description now and go straight to the code. it does a better job of explaining 😅
010
James @43081j.com · 15/09/2026
i don't mind people using agents to create PRs, but please at least write the description and replies yourself 🙏
12804
James @43081j.com · 14/09/2026
xcancel is gone again 😔 > Unfortunately, due to a new development in the ongoing legal proceedings, we are required to suspend this service again until further notice. We can't share more details.
xcancel.com
1245
James @43081j.com · 14/09/2026
i noticed Claude was unnecessarily reinstalling itself every 30 mins or so. wasting bandwidth, CPU time, etc. it turns out if you have an older version still running, it keeps trying to install the already-installed new one every 30 min. because it compares `latest` with the _running process_
2160
James @43081j.com · 13/09/2026
It's the best! Very chill 😄
020
James @43081j.com · 13/09/2026
good question! 😅 given it is trying to manage more and more things (github actions, node versions, etc.) - maybe nub/vite+/bun-like? but those each do a bit of their own thing too
021
James @43081j.com · 13/09/2026
GitHub having some trouble this morning it seems 👀
2101
James @43081j.com · 13/09/2026
Good to be back home today. Lots of GitHub to catch up on 😄 And a few new ideas 👀
0180
James @43081j.com · 12/09/2026
You too! See you next time 🙌
020
James @43081j.com · 12/09/2026
Was great to see you again! 🙏
020
James @43081j.com · 12/09/2026
Flying back to the UK! My seat was changed and now I'm in a _premium_ seat (further forward 😂)
1140
James @43081j.com · 12/09/2026
it does seem like pnpm is trying to keep up with the competition, but the competition only exists because it is no longer just a package manager. at this point i'm not sure what the competition is, though
2291
James @43081j.com · 12/09/2026
Heading home today. @zurichjs.com has been such a great event 🎉 Too many great people to mention, but thanks to you all for hanging out, and to all the organisers for making something great 🙏
3342
Reposted by James
Colin @colinscz.npmx.social · 11/09/2026
Now the e18e panel 🟠🟡🟢 is happening at @zurichjs.com conf hosted by @thealexlichter.com with @tolin.ski @43081j.com @debbie.codes & @santoshyadav.dev
0306
James @43081j.com · 11/09/2026
Great talk 😀
040