Skip to content

July 18, 2025

Community Showcase (Q2 2025) ​

A little late, but it's time for another community showcase! πŸŽ‰

So many good things have happened over the last quarter in the community and around the ecosystem, and there's so much more to come πŸš€

Prettier CLI ​

The Prettier team has been collaborating with the e18e community for some time now on a new, faster CLI for Prettier. In June, this was released behind a flag for all to try out! πŸŽ‰

This has been a great collaboration, driven mostly by the work of @fabiospampinato and plenty of help from @fisker on the Prettier side of things.

You can see some of the huge performance improvements in the chart below:

prettier run time results

You can use this in your own project by using the new experimental flag:

sh
# via the CLI flag
prettier . --check --experimental-cli

# via an environment variable
PRETTIER_EXPERIMENTAL_CLI=1 prettier . --check

Without any other changes, this should speed up your formatting runs a whole lot πŸ™Œ

Read more about how we got here in the blog post.

e18e CLI ​

We posted about the upcoming e18e CLI some time ago and the rough idea behind it. Since then, the community has been hard at work building it and shaping the definition of what's to come.

Soon you will be able to do cool things like this:

sh
npx @e18e/cli migrate chalk # automatically migrate chalk to picocolors

npx @e18e/cli migrate --interactive chalk # interactively choose which library to migrate chalk to

npx @e18e/cli analyze # lint your dependency tree and produce useful stats

We now have the basics in place and a much fuller list of features to work towards. Just a few of the things this CLI will be able to do:

  • Automatic migrations to suggested replacements
  • Lint your dependency tree for common issues
  • Lint your publishing setup (with help from publint!)
  • Visualise CJS vs. ESM usage in your project
  • Bring your own codemods and replacements lists (so the CLI can migrate and detect migrations of your own internal dependencies)

We're also working towards having a GitHub automation which can create these migration PRs for you, and run the lint steps in your CI.

If you want to contribute or if you just want to test the CLI as we build it, we'd love the help. Come join us in the e18e Discord and join the #cli channel!

You can also follow along with the release roadmap in the roadmap issue.

Huge thanks to @paul, @passle and @fuzzyma for all the work so far.

Storybook 9 ​

Storybook recently released version 9! πŸš€

This release comes with all sorts of improvements like Storybook Test, story generation and much more. However, the highlight for us is by far the install footprint reduction and project complexity improvements.

Just look at this graphic taken from their post:

storybook 9 dependency graph

They've almost flattened their dependency tree! This is some great progress and the result of many months of work by the Storybook team - much of which involved collaborating with the e18e community.

You can read more about how they achieved this and how they're keeping on top of it in their blog post.

We also recently held a webinar where Jeppe from the Storybook team and James from e18e discussed the technical details behind these improvements. You can watch the recording on YouTube: Lessons learned from reducing bloat in Storybook where they dive deeper into the process and lessons learned.

Big thanks to the Storybook team for taking a lead on this kind of improvement, and for working so closely with the community throughout ❀️

ESM-only migration ​

Ever since require(esm) became a thing, we've been pushing to move more and more projects to ESM-only. Helping maintainers with the migration has been high up on our list, and we've made great progress.

On top of that, we're seeing a lot more migrations happening outside the community as more and more maintainers are choosing to follow suit.

Here's just a few projects we've seen migrated:

Some future migrations on the horizon too:

Thanks to @michael.faith for migrating some of these, and the maintainers who made the move themselves!

fdir ​

With help from @sxzz and @thealexlichter, fdir is now bundled using tsdown. This has lead to almost a 3x reduction in install size and a much faster build time for the maintainers!

This is unreleased as of writing, but will be coming soon. Keep an eye on the releases page.

Another upcoming feature for fdir is the ability to use async iterators rather than callback-style APIs. This should come with a massive reduction in memory usage and will look something like this:

ts
import { fdir } from 'fdir'
const files = fdir().crawl('/path/to/dir').withIterator()

for await (const file of files) {
  console.log(file)
}

Since this means fdir doesn't need to hold the full set of files in memory, it should be far better in large projects than the current callback API.

Thanks to @thecodrr for all the work on this πŸ™

tinyglobby ​

tinyglobby also has some unreleased performance improvements on the horizon, almost doubling its CPU performance in some cases.

Most notably, the underlying filtering in tinyglobby had a large rework which bumped performance massively.

Much of this was made possible by introducing some reproducible benchmarks to the project. These have allowed the maintainers to track down and fix performance bottlenecks in various places.

For example, here's the result of searching for packages/*/tsconfig.json in TSESLint's monorepo before the changes:

Task nameThroughput avg (ops/s)Throughput med (ops/s)
'tinyglobby''891 Β± 1.35%''981 Β± 131'
'fast-glob''1822 Β± 0.68%''1878 Β± 110'
'glob''1725 Β± 0.61%''1767 Β± 95'
'node:fs glob''923 Β± 0.67%''941 Β± 74'

And the result after the changes:

Task nameThroughput avg (ops/s)Throughput med (ops/s)
'tinyglobby''2254 Β± 0.42%''2312 Β± 89'
'fast-glob''1868 Β± 0.60%''1903 Β± 103'
'glob''1714 Β± 0.58%''1754 Β± 85'
'node:fs glob''927 Β± 0.78%''983 Β± 49'

In many cases, this now makes tinyglobby the fastest glob library available.

Keep an eye on the releases page for when this becomes available!

The library also recently passed 20M downloads/week on npm, a great achievement for the maintainers and the community!

Thanks to @superchupu and @benmccann for these huge improvements πŸ”₯

npmgraph suggested replacements ​

The npmgraph tool now suggests replacements for your dependencies!

To do this, it uses the community-driven module-replacements project.

This is such a great addition, and will be a huge help for finding optimisations in your project.

All thanks to @broofa for implementing this! πŸŽ‰

Project collaborations ​

We've seen another great few months of collaborations, both with projects and with individual maintainers.

h3 ​

h3 is a tiny HTTP server framework by one of our favourite people - @pi0!

Often one of the largest and/or most complex dependencies is the web server, and the various middlewares and dependencies it pulls in. h3 is a super nice alternative to many of these - staying small, close to the platform, and incredibly fast.

A really awesome collaboration recently was one between pi0 and reve to introduce compiled routes. This allows you to compile a static routing table at build time, resulting in some huge performance boosts.

Definitely check out both h3 and the underlying router, rou3.

react-router ​

With lots of help from @MichaelDeBoey, we've been busy at work collaborating with the React Router team to clean up a bunch of dependency clutter, unused code and start some discussions around modernisations of some parts of the project.

All sorts of clean up has been going on - including running knip across the project, migrating to native functionality, and a possible future "unforking" of clack.

As part of the upcoming Remix v3, there's also the new node-fetch-server worth keeping an eye on. This is a new web server built on top of Node primitives and a fetch-like API.

Big thanks to MichaΓ«l and the React Router team for holding these discussions and helping the community follow the contribution process, too.

Netlify ​

Some time ago, we reached out to the Netlify team to see if the community can help modernise and clean up some of the Netlify CLI. A few months later, we've seen many discussions happen and many PRs land. A lot of good collaboration has happened, and the Netlify team has done a lot of good work internally aligned with our goals.

Notable changes include:

  • Dropped support for Node 16 and below in Netlify build (used by Netlify CLI) - this resolved vulnerabilities, reduced the install size and upgraded a whole bunch of dependencies
  • Removed 71 dependencies from Netlify CLI
  • Reduced the install size of Netlify CLI
  • Improved the performance of the Netlify CLI by 2-3x (changelog)

It has been awesome to see a company collaborating with the community on this and sharing their roadmap/vision. Big thanks to @philippeserhal in particular for being active in the community and helping get contributions over the line.

Get involved ​

If you'd like to help out, come join our discord and say Hi!

Released under the MIT License. (81e12eb8)