GitHub, please don't make me unstar everything

July 13, 2021

GitHub has long been my favorite social network. Although not commonly conceived as such, it has all the features one would expect from a social network: user profiles; an activity feed; notifications for a variety of topics; people you can follow and interact with. But, unlike general-purpose social networks that use outrage to fuel engagement, GitHub is built around collaborative software development. Not only is this more interesting and pleasant than doomscrolling, it also happens to be my favorite activity.

Like most social media platforms, GitHub is gamified, and the currency of GitHub is the star. Although the intended meaning of the star has, to my knowledge, never been formally defined and is therefore subject to interpretation, stars are the "imaginary internet points" users dole out and developers receive on GitHub. And although stars are free and available to use without limit, they are not easy to come by:For example, at the time of this writing, of the 45 million public repositories on GitHub, only 65,000 repositories had 100-149 stars. It is clear that GitHub users don't award stars willy-nilly. Stars, whatever they mean, must be earned.

Now, whether stars have any real-world value is the subject of debate, but judging from Twitter, many developers, including myself, certainly do appreciate them. Short of real monetary compensation, stars are at least some measure of a repository's significance in the wide world of open source software. Which is why a recent change introduced by GitHub to the activity feed is unfortunate. Two weeks ago, I opened GitHub and noticed something strange in my feed:Prior to this, the only things that appeared in my feed were relevant. They were:

  • my repositories;
  • other users' repositories I had "watched"; and
  • activity by users I had "followed."
This was something new: GitHub was now interpreting the star as signifying a desire to receive updates about a repository and was now surfacing new releases to my feed. Interesting, but irrelevant. Three.js was probably one of the first repos I had starred. At the time it was a budding library with hundreds, maybe a thousand stars. Fast-forward to 2021: Three.js is a widely known, basically standard tool with 300,000 downloads per week on NPM and 73k stars on GitHub. Not interested in receiving release updates about a common library I don't use, I unstarred Three.js.

Since then, I've unstarred nearly every library that once-upon-a-time I starred and had now ended up in my activity feed because of a new release. Which is a shame. Some of these libraries, like Three.js, have become household names. If I had starred Three.js as a bookmark to remember later, then that's no problem: I'll find Three.js in the future. @mrdoob might be missing my star a little, but I doubt he's been hurting too much. The problem is with lesser repos, where authors might actually miss the hard-earned stars they'll lose, and might even be reluctant to make new releases as a result.

In general, unstarring repositories because of this change has been somewhat sad. I've always enjoyed perusing my collection of stars. My stars chart my development as a programmer, which has been a journey. But my prevailing consideration will always be to protect my attention, and given how much time I spend on GitHub, I cannot afford distractions in my activity feed. In the past I had completely blocked the activity feed by selecting and removing it with a browser extension. But I enjoyed it enough that with some curation I was able to bring it back and keep it relevant and useful. With this change, however, it seems like the only way to curate is to unstar, and it seems like I'm not the only person doing this.

My attitude, in general, is to embrace design and feature development. Changes are always strange at first, but my experience has been that I invariably get used to them. Yet, here I am two weeks later, writing in hopes that GitHub will somehow change this feature to make it better. Highlighting new releases is a great idea, but GitHub is a special social network that should take users' attention and producitivity into account. Adding noise and neglecting relevance while changing the meaning of an already implicitly-defined feature is not the way go.

Thoughts? Discuss this on Hacker News.