package size over time
First off, thanks for this great library!
Please describe the feature/suggestion
I love the ability to see the package size for the recent releases. But it would be really nice (assuming Bundlephobia has this data) to be able to see it for all of the version of a package. Specifically being able to answer the question of, "is this package getting more bloated over time?"
It can be hard to do this when only the most recent ~10 patches show up currently.
Describe the solution you'd like
It could either be a change to the display of the current bar chart, making the columns skinnier throughout, or maybe the first half is skinny to accommodate longer windows.
Or, it could be a smaller "zoomed out" version of the bar chart that lives right below it (even displaying the current window of the larger chart, like date range pickers sometimes do).
Either way, being able to see that a package has been adding lots and lots of features over time, resulting in bloat. Versus one that has added features while keeping the overall size fairly constant. I think this is a nice indication of whether the maintainers have chosen a specific scope to tackle, or whether they are kind of wandering around solving adjacent problems.
I agree that some packages release patch versions with a higher frequency and that makes sizes over time less useful. I don't want to reduce the width much to accommodate more here, because there bars are also click targets (for versions not built yet).
However I think we can add a windowing mechanism (arrows on both sides that allows pagination). Another thing that might help is a selector for viewing mintor-only or major-only versions.
Bundlephobia does have historic data beyond what it shows for most popular packages.
@ianstormtaylor Is this something you'd be interested in experimenting with?
@pastelsky nice, the minor/major filtering might solve the goal, so that could be a decent approach.
The pagination arrows wouldn't solve it because the goal isn't just to make it possible to see the size of any specific version back in time, but to make it possible to understand the evolution of a package's size over time, and the barrier of clicking through many pages would prevent the insight. My hypothesis is that there are many packages that purely grow in size over time, and right now it's not really possible to evaluate whether a maintainer has chosen to consider package size a priority purely from the graph.
I'd probably recommend a small sparkline-style graph for all versions that doesn't need to have the same click target limitations of the existing graph.
I'm also wondering if I should switch the bar graphs to showing the latest patch version of minor versions only. Having the last 15 minor versions should give a good enough idea about size growth for most libraries.
@pastelsky I think that would be a great change! That alone could do it, you're right that 15 seems like enough minors to get the gist of the history. And for many packages the current history of recent patch-level versions isn't that interesting as it is.
@pastelsky just for an example, today I was interested to see how Immer's size has changed over time, but this graph doesn't really tell me much because it's only patches:

Hello @ianstormtaylor You can use bundle-phobia-cli as a temporary solution
bundle-phobia mapbox-gl --range 0
ℹ mapbox-gl (2.2.0) has 23 dependencies for a weight of 803.46KB (214.15KB gzipped)
ℹ mapbox-gl (2.2.0-beta.1) has 23 dependencies for a weight of 803.47KB (214.15KB gzipped)
ℹ mapbox-gl (2.1.1) has 23 dependencies for a weight of 802.3KB (213.87KB gzipped)
ℹ mapbox-gl (2.1.0) has 23 dependencies for a weight of 802.3KB (213.87KB gzipped)
ℹ mapbox-gl (2.1.0-beta.1) has 23 dependencies for a weight of 802.32KB (213.88KB gzipped)
ℹ mapbox-gl (2.0.1) has 23 dependencies for a weight of 797.17KB (212.04KB gzipped)
ℹ mapbox-gl (2.0.0) has 23 dependencies for a weight of 798.11KB (212.18KB gzipped)
ℹ mapbox-gl (1.13.1) has 23 dependencies for a weight of 745.62KB (190.68KB gzipped)
ℹ mapbox-gl (1.13.0) has 23 dependencies for a weight of 745.59KB (190.67KB gzipped)
ℹ mapbox-gl (1.12.0) has 23 dependencies for a weight of 742.63KB (189.9KB gzipped)
ℹ mapbox-gl (1.12.0-beta.1) has 23 dependencies for a weight of 742.64KB (189.91KB gzipped)
ℹ mapbox-gl (1.11.1) has 23 dependencies for a weight of 741.96KB (189.55KB gzipped)
ℹ mapbox-gl (1.11.0) has 23 dependencies for a weight of 741.76KB (189.52KB gzipped)
ℹ mapbox-gl (1.11.0-beta.1) has 23 dependencies for a weight of 741.65KB (189.44KB gzipped)
ℹ mapbox-gl (1.10.2) has 23 dependencies for a weight of 740.59KB (189.17KB gzipped)
ℹ mapbox-gl (1.10.1) has 23 dependencies for a weight of 740.59KB (189.17KB gzipped)
ℹ mapbox-gl (1.10.0) has 23 dependencies for a weight of 739.99KB (189KB gzipped)
ℹ mapbox-gl (1.10.0-beta.1) has 23 dependencies for a weight of 740KB (189.01KB gzipped)
ℹ mapbox-gl (1.9.1) has 23 dependencies for a weight of 725.47KB (184.67KB gzipped)
ℹ mapbox-gl (1.9.0) has 23 dependencies for a weight of 724.53KB (184.36KB gzipped)
ℹ mapbox-gl (1.9.0-beta.1) has 23 dependencies for a weight of 724.41KB (184.32KB gzipped)
ℹ mapbox-gl (1.8.1) has 23 dependencies for a weight of 729.27KB (185.27KB gzipped)
ℹ mapbox-gl (1.8.0) has 23 dependencies for a weight of 729.49KB (185.31KB gzipped)
ℹ mapbox-gl (1.8.0-beta.1) has 23 dependencies for a weight of 729.63KB (185.4KB gzipped)
ℹ mapbox-gl (1.7.0) has 23 dependencies for a weight of 727.96KB (184.66KB gzipped)
ℹ mapbox-gl (1.7.0-beta.1) has 23 dependencies for a weight of 727.06KB (184.44KB gzipped)
ℹ mapbox-gl (1.6.1) has 23 dependencies for a weight of 722.67KB (183.29KB gzipped)
ℹ mapbox-gl (1.6.0) has 23 dependencies for a weight of 723.13KB (183.37KB gzipped)
ℹ mapbox-gl (1.6.0-beta.1) has 23 dependencies for a weight of 723.29KB (183.39KB gzipped)
ℹ mapbox-gl (1.5.1) has 23 dependencies for a weight of 709.59KB (180.11KB gzipped)
ℹ mapbox-gl (1.5.1-beta) has 23 dependencies for a weight of 710.16KB (180.24KB gzipped)
ℹ mapbox-gl (1.5.0) has 23 dependencies for a weight of 709.06KB (179.9KB gzipped)
ℹ mapbox-gl (1.5.0-beta.1) has 23 dependencies for a weight of 709.07KB (179.96KB gzipped)
ℹ mapbox-gl (1.4.1) has 23 dependencies for a weight of 693.47KB (175.97KB gzipped)
ℹ mapbox-gl (1.4.0) has 23 dependencies for a weight of 693.49KB (175.99KB gzipped)
ℹ mapbox-gl (1.4.0-beta.2) has 23 dependencies for a weight of 694.11KB (176.13KB gzipped)
ℹ mapbox-gl (1.4.0-beta.1) has 23 dependencies for a weight of 693.68KB (175.88KB gzipped)
ℹ mapbox-gl (1.3.2) has 23 dependencies for a weight of 685.41KB (174.14KB gzipped)
ℹ mapbox-gl (1.3.1) has 23 dependencies for a weight of 684.85KB (173.98KB gzipped)
ℹ mapbox-gl (1.3.0) has 23 dependencies for a weight of 685.65KB (174.23KB gzipped)
ℹ mapbox-gl (1.3.0-beta.1) has 23 dependencies for a weight of 686.34KB (174.44KB gzipped)
ℹ mapbox-gl (1.2.1) has 24 dependencies for a weight of 673.55KB (170.97KB gzipped)
ℹ mapbox-gl (1.2.0) has 24 dependencies for a weight of 673.46KB (170.95KB gzipped)
ℹ mapbox-gl (1.2.0-beta.1) has 24 dependencies for a weight of 673.47KB (170.96KB gzipped)
ℹ mapbox-gl (1.1.1) has 24 dependencies for a weight of 669.69KB (170.03KB gzipped)
ℹ mapbox-gl (1.1.0) has 24 dependencies for a weight of 669.67KB (170.03KB gzipped)
ℹ mapbox-gl (1.1.0-beta.2) has 24 dependencies for a weight of 669.66KB (170.03KB gzipped)
ℹ mapbox-gl (1.1.0-beta.1) has 24 dependencies for a weight of 667.64KB (169.28KB gzipped)
ℹ mapbox-gl (1.0.0) has 24 dependencies for a weight of 663.28KB (168.59KB gzipped)
ℹ mapbox-gl (0.54.1) has 24 dependencies for a weight of 661.87KB (168.29KB gzipped)
ℹ mapbox-gl (0.54.0) has 24 dependencies for a weight of 662.7KB (168.55KB gzipped)
ℹ mapbox-gl (0.54.0-beta.2) has 24 dependencies for a weight of 663.31KB (168.63KB gzipped)
ℹ mapbox-gl (0.54.0-beta.1) has 28 dependencies for a weight of 662.63KB (168.54KB gzipped)
ℹ mapbox-gl (0.53.1) has 24 dependencies for a weight of 651.36KB (164.95KB gzipped)
ℹ mapbox-gl (0.53.0) has 24 dependencies for a weight of 651.04KB (164.82KB gzipped)
ℹ mapbox-gl (0.53.0-beta.1) has 24 dependencies for a weight of 651.03KB (164.81KB gzipped)
ℹ mapbox-gl (0.52.0) has 24 dependencies for a weight of 640KB (161.82KB gzipped)
ℹ mapbox-gl (0.52.0-beta.2) has 24 dependencies for a weight of 639.97KB (161.83KB gzipped)
ℹ mapbox-gl (0.52.0-beta.1) has 24 dependencies for a weight of 639.49KB (161.6KB gzipped)
ℹ mapbox-gl (0.51.0) has 24 dependencies for a weight of 638.8KB (161.42KB gzipped)
ℹ mapbox-gl (0.51.0-beta.2) has 24 dependencies for a weight of 638.73KB (161.41KB gzipped)
✖ resolving [email protected] failed: invalid json response body at https://bundlephobia.com/api/[email protected] reason: Unexpected token : in JSON at position 3
bundle-phobia failed: invalid json response body at https://bundlephobia.com/api/[email protected] reason: Unexpected token : in JSON at position 3
Thanks @HawkeyePierce89! I still this only showing the latest minors would be a great improvement overall to Bundlephobia—I still get very little value from seeing every patch in that graph.