September contributions
October 6, 2024
It's that time of month again where we show off some of the great contributions we've seen around the e18e community in the past month!
Libraries
This month has been a great one for improvements to existing and upcoming libraries. Many have been listening closely to the e18e community and pushing forward together.
chokidar 4.x
chokidar is a library for watching for changes on a file system. Built on top of node's own watcher capabilities, it provides a higher level and simpler interface.
Almost all of us depend on this library in some way, often through the toolchain or framework we use.
@paulmillr, the author of chokidar, and I (@43081j) have been working hard to get the next major version of it over the line for a long time now (the branch was made in 2021!).
Recently, we finally released 4.0.0! 🥳 This massively reduces the size and complexity.
Those of you who remember the is-number
fiasco on social media will now also be super happy that we (chokidar) were the largest consumer of it and have since dropped it entirely 🎉
Big wins for the e18e community!
Thanks to @benjaminmccann and talentlessguy for contributing many v3 to v4 upgrades already!
fdir / tinyglobby
fdir
was in last month's showcase but has earned another mention thanks to the author (thecodrr) landing various community contributed PRs and features.
This is a great example of where an author has joined the community and worked closely with it to further their library, and provide some much needed fixes and features.
In version 6.4.0, we saw two important changes:
- Ability to exclude symlinks
- Ability to bring your own glob library (e.g. zeptomatch)
These two changes have helped the community migrate even more high level tools and frameworks across.
Similarly, tinyglobby has shipped a few new versions and hit 1M downloads/week. This is amazing work, especially keeping up with the feature requests and feedback of people migrating.
Thanks to pralkarz, @benjaminmccann and @superchupudev for already migrating so many projects to these two libraries!
tinyexec migrations
The community has been working wonders migrating countless projects from execa
, ez-spawn
, and other libraries to the super lean tinyexec.
For example, thanks to pralkarz, vitest has already moved over!
There are many more PRs currently in progress to do just the same 🙏 Great work by the community here.
Contributions / Improvements
Storybook
The Storybook team have been working closely with the e18e community for some time now, dedicating huge amounts of time to improving the performance and install footprint for everyone.
This month, they've kept up the pace! Just a few examples of what has landed:
- Migrated from
chalk
topicocolors
- pralkarz migrated from
fs-extra
to built infs
functions - Removed
handlebars
and simplified templating internally - Removed
prettier
from the core bundle (saved 10MB on the install size) - Replaced
lodash
withes-toolkit
(more huge savings, especially with tree shaking)
On top of this, the team has actually started a full project focusing on reducing the install footprint in collaboration with the e18e community.
For anyone interested in helping out in the e18e space, this issue a great way to learn some of the techniques used to track down bundle/install size issues.
As a bonus, they even integrated visual bundle size analysis into their CI so all new PRs can be compared with the main branch. They did this by generating esbuild metafiles for all of their packages every time they're built and storing links to the esbuild Bundle Size Analyzer website with those metafiles embedded. The final result is a visual overview of all package's bundle, that you can play around with here.
We would love to see this in more projects! You can get inspiration from the PR that implemented the work.
This has all been great to see and will hopefully lead to other large projects making similar efforts! Definitely some big wins ahead 🙌
nx
The folks over at nx have been incredibly active with the e18e community. They are definitely on the same page and have been moving fast to work with the community to land many improvements.
You can see a lot of this in the tracking issue over on the ecosystem cleanup project. These issues are closing quickly, with contributions coming from a few different people in the e18e space.
Just a few examples of the improvements made:
- Migrating older fs-extra code to use newer, native
fs
functionality - Migrating from chalk to picocolors
- Migrating from glob libraries to fdir
These are all improving the CPU performance of nx and cutting huge subtrees out of the dependency tree at the same time.
changesets
The changesets project recently started collaborating directly with the e18e community and we've already seen a good amount of optimisations contributed.
There's a tracking discussion here if you want to get involved.
It is awesome to see the maintainers of a large project working so closely with the community on these things ❤️
Big thanks to @bluwyoo and @andaristrake for getting this setup!
jimp
jimp, an image manipulation library, has reduced their package size by an impressive amount:
- Before: 120MB, 392 packages
- After: 25MB, 66 packages
This is awesome work 🙌
Bonus: ViteConf
ViteConf happened recently and had some amazing talks across all topics.
While it didn't happen in September, it still deserves a mention thanks to how many of the talks mentioned the e18e community.
Our own Bjorn did an excellent talk on performance (watch here). Similarly, the great people at Storybook explained a lot of their efforts to reduce their install footprint and how they've collaborated with the e18e community (watch here).
Get involved
If you want to help out, join the discord. We'd love to have the help 🙏