There are several far from ideal situations in which GitHub can become very annoying and ineffective at notifications
and highlighting what matters. To me, what matters most in GitHub is: reading updates to issues and pull requests, and coming across interesting repositories that people I follow star or fork.
The Watchful Giga-org 
Do you belong in a large organization like nodeschool? Then you know what it’s like to be added to a new repository every other day, and having to either unwatch those whenever they are created, set up email filters to prevent the incoming spam, or receive a barrage of emails you don’t care about.
The “Add Collaborator” Spam-Fest 
Earlier today someone published an attention-whore repo on GitHub. That repo lets anyone who has a few minutes to spare spam the hell out of everyone’s activity feed on GitHub. The idea is to inconsiderately draw attention to a repository.
The Death Star 
Have a trending repository that got featured on Hacker News or the like? Good luck finding issues and pull requests today in your activity feed.
Let’s fix these issues one at a time.
Unwatching All the Things 
This one I learned a while back from Jessica Lord. It may take a while to get used to, but it’s well worth it – if you ever step into a large GitHub org.
- Go to your account’s Notification Settings and uncheck the “Automatically watch repositories” checkbox

- Then – and this is the harder-to-find tip – go to Watching and click on Unwatch all. This will get rid of all repos you were watching but didn’t want to.

- You’ll then have to individually watch the repos you care about. Remember to watch repositories you create yourself! This is mostly a matter of practice, you’ll forget for the first few. I just wish GitHub had more options around this so that you could auto-watch only your own repositories.
Getting rid of Unnecessary Bloat 
For all other things GitHub interface bloat, there is refined-github. It’s a browser extension that comes in several flavors and hides annoying things like star and fork notifications for your own repositories, add collaborator notifications that spam the hell out of your activity feed, and many more UX improvements and tweaks.
Here’s how my feed looks without and with the extension, respectively.

Highly recommended!
Got any more tips to share? I’d love to hear more in the comments.

Comments (4)
Good Article. Thanks for mentioning refined-github ;)
Thanks for mentioning Refined GitHub! (one of the collaborators here)
We are actively trying to improve things, please head to https://github.com/sindresorhus/refined-github/issues if you have any suggestions of what you want to see.
You’ve mentioned Refined GitHub removes fork notifications, however this wasn’t the case until a few hours ago as you can see from your screenshot. The change is not even released on the Chrome Web Store yet. I guess you could update in a few hours/days when it is released.
If you have the time to expand the Refined GitHub section in this post or write a new one with info on more of its many features, this would be much appreciated!
Thanks a lot!
I really, really wanted to hide collaborator notifications, so I did that yesterday before the article came out!
I’d be happy to add more info if you want to email me some Markdown.
Hey Nicolás, I know this is a few months old, and you’ve probably got a solution already… I was telling a co-worker about your newsletter and I spotted this one. You could always get a snippet like this, since they’re on one page (for me at least).
var name = document.querySelector(’.header-nav-current-user strong’).innerText; var subscriptions = document.getElementsByClassName(‘js-subscription-row’); for(var i = 0; i < subscriptions.length; i++) { if(subscriptions[i].querySelector(‘a span’).innerText !== name) subscriptions[i].querySelector(’.js-unsubscribe-form button’).click(); }; console.log(‘done’);
That will “click” all the unsubscribe links of whatever hasn’t got your name attached. You could add it to the Refined Github as another button on the UI if it’s at all valuable. I’m not a JS expert so there’s probably (definitely) a better answer I’m sure :)