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 treesSpeeding up popular packagesCreating lighter alternatives to bloated librariesJames 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 GuestJames "43081j" Garbutte18eWebsiteBlueskyChapters(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 upLinks and ResourcesParse5Doom in TypeScriptFlappy Bird in TSLitElementSpeeding up the ecosystem blog post series by Marvin Hagemeistere18e issue overviewe18e Discordminizlib install size improvementsStorybook dependency tree reductione18e module replacement repositoryAnthony Fu's node_modules inspectorPublint by Bjorn LuUmbrella CLInano-staged (instead of lint-staged)npm-run-all2eslint-import-plugin-x (instead of eslint-plugin-import)tinyglobby (instead of any other glob lib like globby/fast-glob)fdirVite Devtools announcementBundling dependencies (and when not to do it)A lighter Nuxt CLIYour HostsAlexander LichterBlueskyYouTubeWebsite---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.