Great to see Formidable investing further in it, I am very excited to see first class extensibility.
Great to see Formidable investing further in it, I am very excited to see first class extensibility.
How is that 22.5kB making any difference? Unless you are working on a project that will be used on very slow connections I see no point in choosing a library basing on such small difference in size. And if you really are targeting those slow connections then maybe going SPA is not the best choice?
It is not only about how long it takes to download, it is also about parsing that amount of code in low end phones.
Still I do think if you are building a web application (and not a static site or a blog) it is expected it can take a second or two to load it for the first time. 500 KB bundle is nothing wrong in that case.
It's also expected that my train is going to be late, but we can lament this condition, instead of resigning ourselves to it.
Ignoring the impact of libraries you send to the frontend will lead to death by a thousand cuts.
I would hate to use something built by people with the attitude that compromising on performance when you don't need to is OK because it falls in line with current expected ranges.
If the bundle size is 550kb min/gzipped, that's 110kb of app code, and 440kb of dependencies. Some of the largest dependencies in a recent audit were: moment (60kb), swiper (32kb), lodash (24kb), react-select (26kb), raven.js (12kb), polyfills (25kb), mobile-detect (15kb), and then a bunch of smaller dependencies that made up the remaining 300kb.
Using this performance budget calculator you can quickly see how each 25kb of JS adds ~.3s to your TTI on a mobile phone:
https://perf-budget-calculator.firebaseapp.com/
If developers shop around for smaller alternatives of each dependency, then they can cut their load times pretty drastically.
For example, Relay removes the need for a lot of Flux and network request boilerplate. Going beyond that, it can collapse serial network fetches down into one request, massively speeding up page loads.
(This doesn't apply to moment, that library is just designed in a brain dead way).