Skip to content

e18e - Journey so far

January 6, 2025

Journey so far Cover Image

This month we're skipping the usual monthly showcase post to write a little about what we got upto in 2024 and what lies ahead for us in 2025 🚀

Before we start, a little about me - I'm one of the creators of e18e and can be found in most places as @43081j. I maintain and contribute to a whole bunch of things but have been focusing on this community for the past year.

Enough about me though! Let's take a look at some history and what lies ahead for us as a community.

Way back...

For a long time, I found myself returning many times to the need for a more performant JavaScript ecosystem.

As far back as 2017, I was involved with depcheck, a tool which detects unused dependencies amongst other things. I worked on a whole bunch of features and fixes for this tool so I could start introducing it to projects to keep a closer eye on dependency trees.

Around the same time as this, I was submitting PRs to various projects to remove redundant polyfills, one-liner packages and a few other things.

Every few months, I'd think about this again and start submitting another bunch of cleanup PRs.

I even made a few attempts at creating repos to share this effort (e.g. you-dont-need-x and eslint-plugin-clutter).

Unfortunately, none of these efforts really went anywhere. I struggled to find anyone who cared and would often move on to something else for a few months before I got the itch in my brain to tackle it again.

Starting a cleanup

Eventually, I created the ecosystem-cleanup project as place to track performance improvements in popular open source projects.

In the early days, this was basically me creating issues for myself to contribute to various OSS projects. Things like:

  • Removing redundant polyfills
  • Upgrading packages
  • Replacing large packages with lighter, more focused ones
  • Replacing unmaintained packages with modern, maintained alternatives

It was a lot of work for one person, but I kept chipping away in the hope that I could raise awareness of performance and start to improve some of the ecosystem.

Over time, the maintainers of the projects receiving these contributions started to focus more on performance themselves, and we got a few contributors to the cleanup issue tracker!

Beginnings of a community

A few years later, @bluwy was posting about his efforts to speed up astro's tooling. Around the same time, @antfu quote posted this with the following:

Would be cool if we have a "full-time perf optimizers" for the ecosystem 👀

A lengthy discussion later, @antfu, @bluwy, @patak and I came up with the idea for e18e!

Many of us care about ecosystem performance just as much as each other, but never had a space to collaborate or even share that we're working on similar things. The e18e community has connected us so closely and given us a place to grow together.

Finding like-minded people

In the first couple of days, we went out to find others who were working on similar things and might want to collaborate.

To name a few:

All of these people and many others were working on some aspect of performance. Seeing them connect and have a space to collaborate was awesome ❤️

Results so far

Several months later, here's a few stats from the past year:

Most of these PRs and issues are umbrella style, in that they're used to track contributions to many projects.

This is really impressive work by the community, as it has resulted in hundreds, if not over a thousand contributions to many high impact projects around the ecosystem.

Graphs like this dependency reduction of svelte-preprocess are becoming a common sight:

graph showing the dependency tree of svelte-preprocess in version 5 vs version 6

Projects focusing on performance

To get an idea of some large projects focusing in this space now:

Projects & tools

Another big win by the community has been the number of projects it has helped gain adoption, and the projects launched by members.

To name a few:

I could go on, but there are far too many to list.

Some of these already existed before e18e, but the community has done great work driving adoption of them and collaborating with the maintainers (all of whom are in our community!).

The year ahead

What a great year it has been! ❤️

We will continue most, if not all of the work we've been doing in the past year. Much of it will start showing results this year as more people install newer versions of packages we've had an effect on.

There is more to do though!

Speed up

We spent a lot of 2024 focusing on cleaning up dependency trees, modernising packages and helping people lean more into platform functionality.

Much of this fits into the cleanup category of the e18e initiative.

In this new year, it would be great to put some time into the speedup category too. This is often much deeper, long running work since it involves performance testing amongst other things.

Tooling

A lot of what we do is still a manual process, and developers still don't have the right tools to detect much of this stuff automatically.

We'd love to spend time this year on creating a good toolchain for helping take better care of dependency trees and finding performance bottlenecks.

Automating a lot of the investigation work would also be a huge win.

Lots to think about! Some of this will be kicking off in the discord server early in the year.

Meet up

Early in 2025, we will be organising the first in-person e18e meetup!

We haven't decided yet what the structure of this will be (just a social, or something more), but we will post more details very soon.

It'll be great to see people connecting, and what awesome ideas come out of it!

Get involved

We'd love to have you in our community, whatever it is you're working on.

You can help by contributing, or even just by telling us some of the stories of problems you've seen yourself.

Join the discord and come say Hi!

Released under the MIT License. (18385041)