Hacker News new | past | comments | ask | show | jobs | submit login
GitHub Star History Graph (star-history.com)
176 points by bokenator on May 28, 2022 | hide | past | favorite | 75 comments



For me, stars have an inverse correlation with actual usage. I'll star projects I want to look at some day, because they seem cool, like Svelte or Vite.

But projects I work with daily, I don't need to star them to remember they exits, like React or Webpack.


For every professional React developer, there's probably ten people who consider React cool and something to learn in the future, while they haven't even heard about Svelte or Vite.


Doubtful anyone thinks react is cool at this point. It’s more of a thing you just need to use for your job. It’s like Java at this point.


HN is a bubble of negativity. I see juniors light up when seeing react and trying it out for the first time. And I don’t know anyone irl who dreads react.


Agreed, but people (read: I) do dread some of the critical tooling / configs around it (e.g. bundlers). Regardless its amazing how quickly you can spin up a feature rich app these days.


> And I don’t know anyone irl who dreads react.

There's not a lot of us, but we're definitely out here.


Stack Overflow Developer Survey 2021:

- 69% of respondents love React, 31% dread React

- 25% of developers who are not using React would like to use it (1st place among web frameworks)

https://insights.stackoverflow.com/survey/2021


that survey seems like more of a survey of the hive-mind and less of a survey of real opinions.

I recall one year there were SO MANY people saying that they loved Rust (enough to make it the most loved language in the survey) but the number of people who answered that they were actually using Rust was far, far smaller. something like 10% of the number of people who claim to love it have ever used it for any purpose.

I think someone could easily cherry pick results from this survey to back any opinion they have, completely independent of any actual "truth."


So you are saying it represents which technologies the community considers cool?

Because that's exactly the context in which I'm quoting it :)


no I'm saying it isn't a good view into what people actually like. it's a view into what they want the world to be like.

people respond to surveys according to what they want the survey results to be, and not how things actually are.


Isn’t that a lot of what’s cool technology is?


This is a misunderstanding of how the "loved" part of the survey works.

> something like 10% of the number of people who claim to love it have ever used it for any purpose

"Loved" specifically measures what fraction of people currently using the technology say they desire to continue using it next year. In the survey there is no such thing as non-users claiming to love it.


Yeah probably because people have limited time and corporations don’t just let you use whatever language generally


I'm in the same boat. But it seems like there's a broad range of different use patterns for them.


ouch... I starr-ed Vite like, 1 hour ago... but somehow I feel you are right...


ben awad from youtube[1] has a slightly better solution for actual usage: stars/tags

[1] https://www.youtube.com/watch?v=MT6M_sqAuZo


I am the maintainer of star-history.com. Thanks for posting this on HN.

Just to share a trick, you can also use markdown to embed a live star history chart to your GitHub README. e.g.

## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=bytebase/star-history...

Instruction: https://star-history.com/#bytebase/star-history&Date

Enjoy~


Very cool. Thanks for making this.

Is there a way to move or remove the legend. It's coming on the top of the curve for my project [1]. I am guessing there would be more projects with such a profile.

[1] https://github.com/amzn/computer-vision-basics-in-microsoft-...


It looks really cool. A hand writing style... Do you plan adding new themes?


We like the current style and plan to keep it as is.


Slightly related, but... what is it with stars? I've never starred a repo and don't understand why I would want to. Yet it seems to be a popularity contest people care about for some reason, even though it correlates strongly with forks/issues/prs so you get the same idea about usage from those. Does it go at all beyond a "like", or am I just too old to get it?


It makes me feel good when I see one of my projects getting stars. When I star a project it is with the hope that another maintainer will have a similar good feeling.


You're a good person and this made me think I should star some smaller project I use. Thank you. Let's show the maintainers some love.


I think of it as a "like" or a bookmark, if I come across a repo and I find it interesting or useful, I star it.


GitHub recently added a feature where you can organize your stars in lists, so you decide what they mean. My lists include for example "useful CLI tools", "languages", and "projects to contribute to". Outside of this feature, I mostly use the stars as a 'like' button.


It's a 2-in-1 like & bookmark.


I wrote a blog about how stars helped us at the very early stages of our open source product: https://www.infracost.io/blog/github-stars-matter-here-is-wh...


> Yet it seems to be a popularity contest people care about for some reason

Before you incorporate someone's Github library into your own project, you want to know some things. Is it secure? Is it well-maintained? Is there an active userbase to help with support? Stars are one indicator of this.


Honestly, I would rather go for that specific info instead. CVEs for security, network graph and PRs for activity, CI maturity for security and maintenance, etc. Stars give you mostly popularity which is not necessarily correlated. But yeah, I agree they can be a single-number-proxy for the above.


Hardly. I was on a project with a JS dependency with 6.5k stars and sponsors but it injected a remote script at runtime without consent. I'm also a part of niche community circles where a project would be lucky to break 50 stars despite having phenomenal value and quality. It really is purely a popularity contest and only that with a bias towards other languages and projects that are equally as popular.


an indicator is not a proof


I use them mostly like bookmarks, a cool project I stumbled over and want to "pin" for the future.


I use it as a bookmark. Under my own account I can find the repos I have starred.


I use this a lot. I find it interesting to compare trajectories of similar projects. it's often hard to predict the popularity (or at least star count) of a library. Case in point, back when Bootstrap was in vogue I always found the Vue.js version of far superior to the react-strap (and react-bootstrap) in terms of API, documentation, and support. Yet bootstrap-vue never came that close to catching it's React counterparts in stars.

To play devil's advocate to those who thumb their noses at GH stars, I've found this metric to be a helpful proxy in my career when choosing libraries.


I get many stars on my last project but no issues or PR. It feels quite lonely and, more importantly, I can't know if my work is going in a good direction.

I think people mainly use stars as bookmark.


I recommend adding telemetry to your project for this (and I know a lot of people feel strongly about this, so I'll add: with a very easy way of disabling it).

In OctoSQL[0] I'm literally just sending JSON files with coarse information about 1. invocations of the CLI, 2. features used in these invocations, to a VM on DigitalOcean (with a 10-line server receiving them and writing to a JSON file - which I can then process using OctoSQL itself).

Thanks to this I knew that until recently most of what I had were stars, not actual usage, and could also see how the big rewrite I released in January (and the following updates) made a lot of people start actually using it since. Very nice feeling :)

All telemetry logic in OctoSQL is actually contained in a single short file[1].

PS: Keep in mind that https requests take a long time, as they need to do a few roundtrips for the TLS handshake. Don't do that on every invocation if you have latency-sensitive invocations. I.e. in OctoSQL I'm only sending aggregated telemetry data every 10 invocations (as well as on the very first one).

[0]:https://github.com/cube2222/octosql

[1]:https://github.com/cube2222/octosql/blob/main/telemetry/tele...


Octosql looks very cool! Thanks for posting.

Also agree with you about telemetry. We send some minimal telemetry in Robusta (also easily disabled) and it's been a big help for us as a project.

https://github.com/robusta-dev/robusta


do you warn users about the telemetry? OSS users and developers in particular are pretty hostile to it, especially when it's default


Please judge for yourself in this asciinema I've just uploaded whether it's enough of a warning: https://asciinema.org/a/eWQsyXQKi1fmithyTekAD5fWS


That is a very clear and helpful message.

You may want to consider mentioning it in the README.md as well and alongside any example/default configuration you generate indicating the default state and setting to disable it, especially if it's only output the first time it writes the telemetry history.


I think of stars as encouragement, so I give them when it has fewer than a few-k stars and is well maintained, or if not, to encourage it.


Is there an established way that people advertise their open source projects to developers for help? I know that GitHub has exploration features but when I last used them it felt like looking for a needle in a haystack.


Not that I know of. Especially for C. I resorted to re-post to reddit when I reach a subjective milestone but the returns are slim. Also I hear people may dislike such an auto-promoting endeavour...

First time I posted an early naive version of my string lib, the thread became a deluge of 500+ reactions and constructive advice. Subsequent submissions with a much better work got me depressed.


I wish Github were more permissive with traffic-related data to your Github pages. I'm not expecting GA tags, but being able to see > 14 days of page view history would be a good start.

Anyone know of any other solutions around this sort of thing?


Yeah, I don't want to include trackers because of privacy. But it would be nice to see which pages are accessed, and from where the visitors are coming. I don't need more than that, and that can be gathered from the access logs.


In my opinion, analytics should be minimal, 100% anonymous, aggregated, and open to the public - otherwise it’s spying.

I use a self-hosted Plausible analytics server to implement this[0] across all my websites, so it's all public and you get to see exactly what I see[1][2].

[0] https://hexops.com/privacy/

[1] https://opendata.hexops.com/devlog.hexops.com

[2] https://opendata.hexops.com/machengine.org


I’m with you on minimal, 100% anonymous, and aggregated, but why does the data need to be open to the public to not be spying? Genuinely curious, you’ve clearly thought about this a lot.


There are only two reasons it would need to be private:

(1) you're collecting data where if it was public, people would be outraged. That's spying.

(2) you believe the data is anonymous and valuable, but only you / your group should benefit from the insights it provides. You're afraid someone else is going to 'take your ideas' and execute them better than you can.

Point 1 is ethically wrong, in my view. Point 2 is not ethically wrong, but IMO means what you are just trying to run a monopoly on an idea. That's fine, people do it all the time, especially companies - but I think this is wrong for the progress of humanity overall and I dislike it.


Someone saving all the letters you have written them isn't spying on you, you have just been careless to write down so many private things.

The easier way is to assume all signals emitted by your computer are being consumed somewhere (Hey CIA friends!) and not emit anything you don't want detected.


If the data is public, you're instantly able to be held accountable for the data you're collecting. Others can determine if you are doing something privacy invasive, intentionally or inadvertently.

Public analytics therefore help ensure and demonstrate your analytics are ethical.


Why?


Star can only show part of the truth, and a more comprehensive analysis may be needed to show popularity in multiple dimensions, like this website does: https://ossinsight.io/


Similar project that has ability to set time period to view, removes the hand drawn look, and better X/Y axis choice.

https://github.com/seladb/startrack-js


we are building a similar tool https://ossinsight.io/ which saves nearly 45B events from GitHub and can let you get more powerful insights from the project, e.g here is the history insights for K8s https://api.ossinsight.io/share/1bdadc17-6d94-41fb-8bc4-d6dc..., enjoy it by yourself :-)


This looks really good. I ended up quickly slapping something [1] together myself to get this kind of insight for my project.

Some feedback though, I found it really hard to understand what the cost would be for "Trying my own dataset" (After the first year) and how TiBD factors in and would be used. All obvious links for TiBD go direct to a signup page which I don't want to fill without some understanding/validation of the service I'm signing up for. Removing the path of this signup page, in an attempt to go to the root URL to learn more, then takes me to an Auth0 access page. I appreciate I may not be your target market, but just giving my view of someone thinking "This looks cool, how much would it cost to have a customized version of this?"

[1] https://gh-stats.bookstackapp.com/


I made a CLI version of a star history grapher for my own use, because I wasn't happy with the granularity of the graphs available in the various online incarnations of this.

https://github.com/dtolnay/star-history

Here is a side-by-side comparison of graphs generated by star-history.com vs my tool: https://github.com/dtolnay/star-history/issues/8

You can distinguish a lot finer structure in my graph: coinciding with individual blog posts with not as much reach as something on Hacker News front page. That structure is almost entirely concealed in star-history.com by the cartoony graphs.


If you want see the effect of HN on a new repository: https://star-history.com/#samwillis/tetra&Date

It was on the HN homepage for about 5 hours yesterday, never higher than about 25. The initial jump on the 25th was some attention on Twitter. Also the HN link was to the website, not the GitHub. I imagine if it had been a link to the repository the stars would be higher.


I wrote a tiny tool to calculate a "brightness" score for a repo, which looks at the total number of stars that the people who starred your repo have.

The idea being that people who starred your repo who themselves have tons of stars are likely "better" in that they are likely to be experienced, intelligent users, and not bots.

https://github.com/Hellisotherpeople/Bright


I have a project that allows not only to compare the stars, but also to find similar repositories, trends and interesting facts: https://ghe.clickhouse.tech/


Very cool. I had no idea GitHub's API kept history statistics for stars!


I don't think it does...


It looks like they're using the `starred_at` timestamp, which is indeed provided by GitHub's stars API[1].

Edit: the code in question[2].

[1]: https://docs.github.com/en/rest/activity/starring#custom-med...

[2]: https://github.com/bytebase/star-history/blob/c8c66678db8015...


Yeah and therefore, it's not the actual history because it only tracks the dates of when the people who have currently starred it have started starring it. It's a detail, but if someone unstars, it will be treated as if that person had never starred the project in the first place. Or in other terms, whatever graph is shown, you will never see it go down.


Ah my mistake! Thanks!


Tutorial on building it with Python https://youtu.be/TzF-OUA1Tlo


https://www.npmtrends.com/ if you want the same for npm data.


Github has always had a bad history graph. I've always wondered why we can't just have a live Github history graph like in Sourcetree.


Anyone know how they're creating such a cool chart like that?


The chart is generated by this,[0] which looks like a custom implementation using the same technique as this xkcd-style chart library[1] made by the same person who started this site (according to the footer).

[0] https://github.com/bytebase/star-history/tree/main/packages/...

[1] https://github.com/timqian/chart.xkcd


Love the xkcd style chart!

<shameless-plug> We also show the GitHub star history, alongside npm download history, issue and PR stats on Openbase: https://openbase.com/js/react/insights </shameless-plug>


https://openbase.com/categories/rust/most-popular-rust-libra...

Does not work. Only JavaScript top list work for me.


Thanks for the heads up! We'll take a look.


this is really cool. nice work


i use this thing all the time, but wish i had the option to turn off the XKCD style charts to some thing more "professional"


Is that a pentagram?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: