e18e: Ecosystem Performance (with James Garbutt)
Manage episode 476843803 series 3564378
In this episode of DejaVue, Alex sits down with James Garbutt, open source maintainer and lead of the e18e initiative. James shares his journey from writing web scrapers as a teenager to maintaining critical JavaScript libraries like parse5 or Chokidar and eventually co-creating the ecosystem performance initiative.
The conversation is then all around e18e, which aims to improve performance across the JavaScript ecosystem through three pillars:
- Cleaning up dependency trees
- Speeding up popular packages
- Creating lighter alternatives to bloated libraries
James explains how the community-driven approach has produced impressive results all across the web development landscape.
Learn about real-world examples of performance improvements, including replacement packages like tinyglobby and nano-staged, and discover how to contribute to e18e even if you're new to open source. James shares also insights on balancing between backward compatibility and performance, bundling dependencies, and also shares future plans for e18e in 2025.
Enjoy the episode!
Our Guest
James "43081j" Garbutt
Chapters
- (00:00) - Welcome to DejaVue
- (00:34) - Which libraries do you maintain?
- (02:10) - How did you get into programming?
- (04:57) - What lead you to Vue.js
- (06:40) - Not ending up in a framework bubble
- (09:41) - Meta frameworks converging
- (11:28) - What is e18e?
- (15:40) - The purpose of e18e
- (18:27) - How to participate?
- (20:38) - Are there prerequisites?
- (23:59) - Ripple effects from e18e improving the ecosystem
- (26:36) - Helping other projects migrate
- (30:27) - Considering backwards compatibility
- (35:50) - Example for replacement packages
- (37:56) - tinyglobby
- (40:40) - Edge cases and modular architecture
- (43:49) - Performance pattern and anti pattern
- (45:32) - Bundling dependencies
- (50:48) - What is planned for e18e in 2025?
- (56:39) - How do you lead and structure the e18e initiative?
- (01:01:42) - Anything else we didn't cover?
- (01:02:21) - Wrapping up
Links and Resources
- Parse5
- Doom in TypeScript
- Flappy Bird in TS
- LitElement
- Speeding up the ecosystem blog post series by Marvin Hagemeister
- e18e issue overview
- e18e Discord
- minizlib install size improvements
- Storybook dependency tree reduction
- e18e module replacement repository
- Anthony Fu's node_modules inspector
- Publint by Bjorn Lu
- Umbrella CLI
- nano-staged (instead of lint-staged)
- npm-run-all2
- eslint-import-plugin-x (instead of eslint-plugin-import)
- tinyglobby (instead of any other glob lib like globby/fast-glob)
- fdir
- Vite Devtools announcement
- Bundling dependencies (and when not to do it)
- A lighter Nuxt CLI
Your Hosts
Alexander Lichter
---
Links marked with * are affiliate links. We get a small commission when you register for the service through our link. This helps us to keep the podcast running. We only include affiliate links for services mentioned in the episode or that we use ourselves.
57 episodes