cat /dev/brain

GitHub is Finally Fulfilling Its Promise of Social Coding

GitHub has made changes lately that are trending towards fulfilling the "Social" part of their "Social Coding" tagline. Recently this has taken two forms:

  1. They have made unlimited private repositories free for everyone and anyone who was paying them for private repositories gets a special badge for social caste status
  2. Users can now set statuses that are visible to your different friend groups, er I mean, organizations (or everyone).

This last item sparked a couple tweets of mine which sparked a half-serious tweet:

A friend of mine agreed with my half-hearted sense of dread and stress caused by this change (which I've already provided as direct feedback to GitHub). This did become a thread, though, where I realized were going to get into nuance for which Twitter is not designed. So I thought I'd expand a bit on these things in a longer form.

The Pro Star

If you're not already familiar with it, user profiles now show a "Pro Star"

GitHub's purple "Pro" star icon for users who paid them $7 per month.

This icon has no explanation, no hover or alt-text, and no indication of how these users received it. So when you hover over someone's username on an issue or pull request (accidentally or intentionally) you see this shiny badge that probably stirs up all kinds of connotations for you as an individual and elevates or separates this person from you (especially if you don't have that badge).

GitHub, for better or worse, is a website where a lot of professional activity happens. A lot of engineeers and engineering managers find me through the variety of F/OSS projects I work on and reach out with opportunities. I wonder what the impact of the "Pro" label on accounts will have with some of those recruiters, engineering managers, etc. who don't actually understand it. Will a woman or person of color who doesn't have that be at an even more severe disadvantage in the technology job market as a result? I don't know. I don't think GitHub or Microsoft knows either and I wonder if they considered this or if this was a "fun" way of "rewarding" users who sent them $7 (US) per month.

In a way this creates a social caste on the site, even more so than the other badges and profile elements did before. Previously, if you (at one point) paid them $7 for one month and joined the developer program and then cancelled your subscription, you could get the "Developer Program Member" badge.

GitHub's Developer Program Member badge

This was an indication that you:

  • Paid GitHub at least $7 one time
  • Claimed to have integrated with their API at one point or another

And that was less obnoxious than this, but they never offered to give it to the integrators who make their platform easier to integrate with. The organization listing can be a sign of social status in the F/OSS world - both number and popularity or significance of the organizations you belong to, but they also serve a deeply functional purpose so that can be forgiven.

In short, this seems like yet another feature where GitHub inadvertently is ignoring its importance in our professional lives by reinforcing privilege already accruing to the members of society who benefit from systematic oppression. Social technologies like this shouldn't do this.

Further, some group of maintainers get to give early feedback to GitHub. Those people are gathered in an totally opaque way. Does someone who maintains as many things as me count as one of those special few? No. Why? I honestly never asked because frankly, why should I do that work for GitHub for free. I have no clue what the bar is to entry into that club but it seems to be based purely on some kind of popularity metre and maintaining one of the best known Python libraries apparently isn't popular enough. [1]

The User Status

This is the feature that showed up today. This is what sparked the twitter thread and this post.

GitHub's new status displayed on my profile reading "I have no clue what's happening, why does GitHub have statuses now?"

I think this could have some really beneficial effects and it could also go horribly wrong.

I have absolutely burned out on F/OSS several times and I've only been participating for about seven or eight years. A status message for everyone could be wildly useful to say something like "I'm taking a break from GitHub and maintaining projets right now. I will update on 2019/11/20." That would be far more useful to me than having to update all the READMEs everywhere and turn off GitHub email notification and all the other rigamarole. If they were to build upon this feature, I might even be able to say per-project "I'm no longer paying attention to this but can be available to assist in an emergency".

In short, I can see having a public way of communicating with any individual who wants to contribute, collaborate, or participate in any way to a project what they can expect from me. This would be a huge improvement over the status quo of "This person is probably maintaining this and I should feel offended if they don't respond within my preconceived notion of a reasonable amount of time".

On the other hand, however, as Ruben points out there can be significant issues here. For example, if people start using this then it may become another expectation or de facto practice that we impose on new maintainers and other members of communities. The absence of a status (or the lack of an update) could serve to be a misfeature. Let's consider a few examples together.

  1. If I or another maintainer has a serious health issue and no access to a way to update my status. If my status indicates in anyway that I should be available and responding and collaborating, that will probably aggravate people using that to set their own expectations around my availability.
  2. Let's take that last example one step further. Let's say I were a single individual with no family left and I passed away. If I didn't give anyone a way to log into GitHub on my behalf, what would happen? Would my last status be something that gave people false hope of activity, maintenance, etc.? Has GitHub even thought about what to do in this case? It took years for Facebook to address it and even then the process can be difficult and painful for family members or friends to navigate.

This is a new feature and it is probably too early to know the answers to any of these concerns and questions. I do worry, however, that GitHub is representing the worst of our industry in these cases. I worry that the site is trending more towards social than I'd care to be involved in. What "social" feature will come next? Micro-blogging? Pokes? Friend requests? DMs?

I know I don't want any of those on GitHub. I don't just abhor them for myself but for everyone else. Men already slide into women's DMs on LinkedIn which is bar-none a professional networking website. What if men start doing that on GitHub? Twitter already serves that purpose, and that is not a good thing.


GitHub should be working to better serve its users but keep in mind, so many people just don't pay for GitHub. I am one of those people and that makes me the product. GitHub still hasn't ever articulated how we're the product, but we must be.

I'm really looking for GitHub to exert some considerate thinking as they move forward embracing their "Social Coding" moniker. I want them to learn from the mistakes of Facebook and Twitter. I want them to make the lives of maintainers easier and to help protect their psychological safety. I want that for myself and I want that for every other maintainer.


[1]Yes I know this makes me sound bitter. In reality, it's just one of those things that absolutely baffles me. I'm sure it is equally baffling to more significant maintainers than I who have similar or worse pains with the platform and still don't get a voice.