Filip Sobol

Filip Sobol

@filipsobol.com

Building (mostly) open-source software. Follow for JavaScript, devtools, and performance content. 🛰️ https://sonda.dev — Universal bundle analyzer

591 followers288 following152 posts

Pinned

Sonda v0.8 is here, and it's the biggest release to date. It introduces a new UI that makes it easier to inspect and visualize large projects. It also displays more information about assets, inputs, external dependencies, and import relationships. Demo and details below 👇

⚠️ Already saw two cases today where newly created GitHub accounts posted comments with a ZIP file claiming to contain a fix for the reported issue. In both cases, the ZIP contained malware. **Remember to check issue comments before letting AI agents loose on them.**

Filip Sobol reposted

🚀Rolldown 1.0 is here!🚀 Rust-based high-performance JavaScript bundler. 🏎️ Runs at native speed that’s up 30x faster than Rollup 🤝 Compatible with existing Rollup & Vite plugins ⚡The underlying bunder for Vite After 2 years, Rolldown is officially stable and has 20+M weekly downloads.

Filip Sobol reposted

TypeScript 6.0 is now available! This release brings better type-checking for methods, new standard library features, new module features for Node.js, and more! But most important, this release brings us one step closer to the upcoming native-speed 7.0! devblogs.microsoft.com/typescript/a...

devblogs.microsoft.comAnnouncing TypeScript 6.0 - TypeScriptTypeScript 6.0 is now available! TypeScript 6 is a stepping-stone release, aligning with the upcoming native-speed 7.0 release.

Recently added a connection diagram view to Sonda 👀 It complements the treemap view and makes it much easier to see how bundles and source files connect. Also, you can now upload JSON reports and get an instant HTML report: sonda.dev/demo

Filip Sobol reposted

Node.js is moving to one major release per year starting with Node 27! 🚀 ✅ Simpler: Every release becomes LTS. ✅ Predictable: Version numbers now align with the year. ✅ New: A 6-month Alpha channel for early testing. https://bit.ly/4rnosLg

nodejs.orgNode.js — Evolving the Node.js Release ScheduleNode.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

Filip Sobol reposted

🙋‍♂️ I _could not be more thrilled_ this isn't a zero-sum game we're here to make the web better for everyone, and this is a win 🔥 props to @npmjs.bsky.social 🙏

Filip Sobol@filipsobol.com

Well, well, well... look who suddenly remembered they can ship new features. Right after the community started working on an alternative. What a coincidence! 🙃

Well, well, well... look who suddenly remembered they can ship new features. Right after the community started working on an alternative. What a coincidence! 🙃

Filip Sobol reposted

Filip Sobol reposted

⚔️introducing TypeSlayer⚔️ A #typescript type performance benchmarking and analysis tool. A summation of everything learned from the benchmarking required to make the Doom project happen. It's got MCP support, Perfetto, Speedscope, Treemap, duplicate package detection, and more.

Filip Sobol reposted

Filip Sobol reposted

Replying to @rich-harris.dev

second: devs tend to fixate on repetitiveness as a sign of poor code quality. but the cure is often worse than the disease, because if unchecked it leads to the thing that, in my experience, really _is_ a sign of poor code quality: indirection. when you're writing code, indirection is your nemesis.

Filip Sobol reposted

Great benchmark! We're continuously optimizing Rspack for faster builds and smaller bundle sizes. It's worth noting that webpack/Rspack produce larger bundles in this case due to different handling of dynamic require() in moment.js, see github.com/filipsobol/b...

github.comfix: ignore context require for `moment/locale` for webpack by SoonIter · Pull Request #2 · filipsobol/bundle-size-benchmarkThere is a lib moment which contains code like var aliasRequire = require aliasRequire('./locale' + name) This means require subfoloder in moment dynamically. Rollup, webpack and Rspack al...
Filip Sobol@filipsobol.com

About 10 months ago I benchmarked the most popular bundlers to compare build speed and bundle size (tree-shaking + minification). I just re-ran the tests with the latest versions to see what’s changed 👇

Filip Sobol reposted

The Register wrote a story about a single maintainer open source project, I think it's shameful and upsetting So I wrote a blog post about it An absolutely ridiculous amount of open source is one person projects. I have the data to prove it opensourcesecurity.io/2025/08-oss-...

opensourcesecurity.ioOpen Source is one personThe Register recently published a story titled Putin on the code: DoD reportedly relies on utility written by Russian dev. They should be ashamed of this story, and the company behind the ambulance ch...

About 10 months ago I benchmarked the most popular bundlers to compare build speed and bundle size (tree-shaking + minification). I just re-ran the tests with the latest versions to see what’s changed 👇

View full thread

About 10 months ago I benchmarked the most popular bundlers to compare build speed and bundle size (tree-shaking + minification). I just re-ran the tests with the latest versions to see what’s changed 👇

View full thread

Rspack: 1.2.0-alpha.0 => 1.4.11 esbuid: 0.24.0 => 0.25.9 Parcel: 2.13.2 => 2.15.4 Rolldown: 0.15.1 => 1.0.0-beta.34 Rollup: 4.27.4 => 4.48.1 Vite: 6.0.3 => 7.1.3 Webpack: 5.96.1 => 5.101.3

About 10 months ago I benchmarked the most popular bundlers to compare build speed and bundle size (tree-shaking + minification). I just re-ran the tests with the latest versions to see what’s changed 👇

View full thread

About 10 months ago I benchmarked the most popular bundlers to compare build speed and bundle size (tree-shaking + minification). I just re-ran the tests with the latest versions to see what’s changed 👇

The big story: @rolldown.rs + built-in oxc minifier. After 10 months the bundle size improved by 18% (-463 KiB). This result not only outperforms the recommended Rolldown + esbuild combo, but also beats more mature bundlers *in this specific scenario*.

But that gain came at a cost. Build speed with Rolldown + oxc dropped by 9.5%. It moves further away from esbuild (the speed leader), but still remains much faster than most other bundlers.

Multithreaded linting just landed in ESLint! eslint.org/blog/2025/08...

eslint.orgNew in ESLint v9.34.0: Multithread Linting - ESLint - Pluggable JavaScript LinterA pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.
Filip Sobol@filipsobol.com

Linting our biggest codebase with a bunch of rules (including many custom ones) currently takes about 38s. Adding `--concurrency=auto` dropped it to 12 seconds. Can't wait for this to be released.

Filip Sobol reposted

Oxlint is making a huge step forward! Two new updates: JS custom rules, with ESLint compatible API are on the way. The first prototype gives a good speedup already! 🔥 Type-aware rules. Full coverage no-floating-promise through tsgolint, integrated like the other oxlint rules and extremely fast.

Big week for Sonda. After 6 months of work, v0.8 is finally out. v0.8.1 and v0.8.2 followed with QoL improvements and minor bug fixes. This week, it also hit 500+ GitHub stars and 20K weekly downloads on npm. Feels like v1.0 is getting close.

Filip Sobol@filipsobol.com

Sonda v0.8 is here, and it's the biggest release to date. It introduces a new UI that makes it easier to inspect and visualize large projects. It also displays more information about assets, inputs, external dependencies, and import relationships. Demo and details below 👇

Filip Sobol reposted

I declined a $1,000/month ESLint sponsorship from a pay-for-follows company. That's not the type of sponsor we want. It's frustrating that these types of companies (as well as online casinos) are more willing to sponsor ESLint than tech companies where ESLint is used.

I wrote an article about how we cut CKEditor’s bundle size by 40% by improving tree-shaking. It covers the tools and processes we used, how we measured improvements and caught regressions, along with techniques you can apply in your own libraries. ckeditor.com/blog/how-we-...

ckeditor.comHow We Reduced CKEditor’s Bundle Size by 40% | CKEditorLearn how we cut CKEditor 5’s bundle size by 40% with better tree-shaking, and get tips, tools, and processes to slim down your own libraries.

So close to 500 stars... github.com/filipsobol/s...

Filip Sobol@filipsobol.com

Sonda v0.8 is here, and it's the biggest release to date. It introduces a new UI that makes it easier to inspect and visualize large projects. It also displays more information about assets, inputs, external dependencies, and import relationships. Demo and details below 👇

Filip Sobol reposted

Production bundle quality matters. In Rspack 1.4, we collaborated with SWC to improve dead code elimination. For example, Rspack and SWC can now produce the smallest bundle for react-router-dom.