First platform with differential bundling since Meteor

I haven’t heard of any other framework pulling this one off since Meteor, but now Rich Harris has implemented it in Sapper, a framework-in-the-making for building apps with Svelte.

I followed the progress a bit on Sapper’s Discord-channel and this feature was heavily influenced by the work of @benjamn on Meteor :grin:


Actually, to be fair, the system implemented in Sapper isn’t nearly as sophisticated as the one in Meteor. They also misunderstood how Meteor implements differential bundling in the first place. (I still like Sapper too!)

Still not sure if there’s anything with a comparable differential bundling setup existing today besides Meteor?

I think there’s some way to do it with WebPack, where it gates on a particular type of supported script tag (maybe components, I don’t remember). It doesn’t have the same fine grained level of control that Meteor has.

The problem with it in every case (including with Meteor) is that npm modules are transpiled by default, and increasingly, to differing levels of support. The result is that we don’t get the benefits of the smaller and faster modern bundle from npm modules, and may increasingly start running in to compatibility problems.

Atmosphere has a nice benefit of not having to worry about that, since it ships source code to be compiled later. The problem with Atmosphere is that it’s yet another package ecosystem to maintain, it’s missing some nice features that npm has (though it has its own strengths), and a bunch of older yet still popular packages on there are eagerly bundled, so they end up in the main bundle when using code splitting (although it’s nice that we can do this in atmosphere to for example eagerly include certain server methods, etc.).