Hacker News new | past | comments | ask | show | jobs | submit login
Github is making me feel stupid(er) (serpentine.com)
179 points by bos on Apr 8, 2012 | hide | past | web | favorite | 52 comments

I totally agree. We use GitHub a ton, but every time I load the first page when trying to do something, my eyes dart across the screen, then a feeling of over-stimulation and weariness sets in. I take a deep breath, relax, and then try to deconstruct their interface so I can figure out what to click next. It definitely taxes the mind to use GitHub on a daily basis.

I understand it's a tough problem domain, but there is definitely room for massive improvement in the UX.

I've started using the address bar to get to most things. I usually only need to get to /issues, /commits, /tree/master/filename

We do that a bit as well.

Now that I think about it maybe they just need an "awesome bar" for github; put in a sha, branch name, issue, tag, pull request, etc and it can auto-complete and take you there.

Also the network view could be really useful for managing projects if it were much faster and slightly better...

In general I just think that there are way too many similarly sized/colored buttons spread all over the place, so I never know where to look for what I need, and I can't ever quite tell where I am without much work.

I think the mental model of how to view and navigate the repo/network is not transparent or consistent. If they could nail that it would really help a ton.

Github devs: this is a sign that pretty though it may be, something is wrong.

I agree that this should spur the Github developers to re-consider their current design, but I see nothing wrong with the general concept of using URL:s for navigating, just as I prefer the Unix shell over GUI:s for many tasks.

Jakob Nielsen wrote about that over ten years ago: http://www.useit.com/alertbox/990321.html - I think the gist of his article still holds true.

And I thought I was the only one.

It's awesome that the URL scheme is 'right' and I can easily use it to get to where I need. But that just means the UI/UX is severely lacking.

I do the same. Probably browsers should have some support for this stuff. What I mean is that if I always visit: foobar.com/verb/<something> and urls where it's clear that there is a fixed part and a variable one, maybe the browser could help you writing this stuff easily, so that you start typing "github commit" and something to just fill with the missing pieces appear.

I do this using firefox bookmarks/keywords using %s.

For example, I use the bookmark http://www.reddit.com/r/%s with the keyword rdr so that I can just type "rdr programming" into the location bar to go to http://www.reddit.com/r/programming. It has made my browsing a whole lot faster.

You can replace /tree/master/filename by just pressing "t" on a project's page. Learned that a week or two ago and it changed my life.

press '?' to get a list of available keyboard shorcuts

Just as there are "clean youtube" browser extensions and the like, the interwebs are in dire need of a "clean github" browser extension.

Stylish (or whatever the equivalent is for your favorite browser) is always an option until a better design comes along. For example, if you don't use the details boxes that much, you can apply something like

div#repo_details { opacity:0.3 !important; } ul.with-details-box { opacity:0.3 !important;}

to make those fade a bit and draw you eye toward the menu bars below them. You could event apply it your specific repo urls, so you could customize it depending on what you're working on.

Again, only a temporary hack, but better than nothing until a better universal design can be agreed upon and implemented.

Stylish: https://addons.mozilla.org/en-US/firefox/addon/stylish/

Now I'm wondering if I'm alone in saying that this completely goes against my experience with Github.

The layout at the top of the page is roughly hierarchical with a header for your account (which is standard). You have (edit: my numbers do not match the ones in the article):

  1. where you are (project)
  2. what you want to see (code, issues, etc) (within that project)
  3. branches, commits, etc (associated with the code in the project)
  4. latest commit (to the code in the branch in the project)
  5. code
There's a clear progression from "project" to "code", with only minor hiccups along the way (the description has to do with the whole project, but then it's pointless to have it at the top of every page, so it's beneath a single tab). And the latest commit seems arbitrary, IMO - it doesn't convey much useful information, aside from the 'freshness' of the project.

On the issues page, the 'new' button is next to the search field because they want you to search first. If you look for a search bar (standard in the top-right corner), because you should be doing so anyway rather than duplicating reports, you would find the new issue button immediately. This is relatively standard UI for a publicly-accessible bug-report-like system.

There are rough parts of Github's UI, definitely. After seeing a mention that it was hard to find how to change to an organization, I tried - very strange and non-obvious that it's only on the root page (that I've seen). And the different layouts between the main tabs for a project could be a lot more consistent. And commits could use a --graph display.

But the main project page? I've always found that to be the single least confusing part of the entire site, and the most immediately-useful. I've used nearly every control on the page multiple times, and hiding them behind more layers of access would only impede normal use of the site.

> it doesn't convey much useful information, aside from the 'freshness' of the project.

But that's one of the most useful bits of information imo. When I'm reviewing projects to see which I will use, that is one of the two most important determining factors (the other being tests, all other things being equal)

There is that, yeah. But that's a lot of screen real-estate for viewing the last-updated-at date for a project, and it's in a different color than other things on the page so it draws your eye. Probably intentionally for this reason.

Do you mostly value the commit's date, or any of the other information in that block? I've only ever cared about the date, personally.

I think they show the latest commit to match Git's model where each commit has its own file tree. If you are looking at an old version of the code, the latest commit for that version uniquely identifies that version. I suppose they show the latest commit as part of a way to prevent people from getting confused which version of the code they are looking at, when they look at past versions of the files. But I think in the case of the project main page, the latest commit is too rarely used to justify being shown by default.

I think GitHub should only show the full latest commit when browsing past versions of code. Otherwise, it should show just the text "latest commit for the master branch", or that commit's SHA ID, or the date of the last update. If allowing people to measure project "freshness" is important enough, maybe they should instead show the 52-week graph of recent activity, like on users' project lists.

I agree with you, I like the main project page a lot as well.

One improvement could be to either fade out (and fade in on mouseover) or darken the 3,4,5 block (numbers from the link).

This would have the effect of either hiding the block so you could be drawn to the menus below (where the real info lies), or to make it stick out more, so your eyes could use it as a point of reference.

right now it all kind of melds together.

That's another thing where BitBucket got it right and clean.

One thing both services suck at is the dashboard full of irrelevant noise.

> That's another thing where BitBucket got it right and clean.

I'm kind of surprised that some people feel this way. GitHub has some confusing UI papercuts, but every time I find myself on a BitBucket project page I spend several second in total bafflement while my mind tries to parse their UI.

Something about the way various parts of the BitBucket UI are insufficiently distinguished makes it hard for me to tell where one part ends and another part begins.

I'm not a heavy user and I'd probably acclimate with enough exposure, but I've always thought BitBucket's general fit-and-finish has suffered in comparison to GitHub.

I like both, but I often feel that GH tries too hard to be everything to everybody. BB develops a bit slower and as a side-effect the main purpose which is source control doesn't get lost in the works.

I also prefer how BB shows the commit log (with the colorful tree on the left)

From my sparse usage of both I'd say that where bitbucket got it wrong is when they try to copy github. I would love a code host with a fast but bare HTML interface, no effects, plain links, code content on the pedestal.

google code?

It takes far too many clicks to get to the code or lists of commits.

Code is the last thing Google Code puts on a pedestal. It's barely a step forward from Sourceforge.

Though I agree that there are probably too many things going on in the interface, I don't see many buttons where I immediately think "I never use that".

Github seems to be in the tough situation of trying to reproduce a command line interface and all its flexibility in one simple / easy to visualize dashboard.

Once you actually get to the commit page it is nearly useless anyway... what I really need out of a visualization is the moral equivalent of 'git log --graph' (which is what many of the better commit visualizers support), not just 'git log'. GitHub is interesting as they are one of these projects that everyone likes to claim is awesome, but where not even a single component of the site is "best of breed".

I agree. I feel that their project page has severely declined in usability from a couple years ago. I wish they would hire a UX and/or IA expert to sort that page out.

Personally, I've never found Github's interface to be overwhelming at all. Sure they have a lot of content on every page, but I think it's well-designed enough where I can easily find what I'm looking for very quickly. For example, when I want to switch branches, looking for the drop down menu with the branching icon is all I have to do and I usually find it right away.

I spent a half an hour trying to figure out how to switch my dashboard to my organization and find the button to create a new repository for the organization. Who knew it was in the News Feed Tab. That needs to change. Clear links for organization management gotta be there.

I also spent a lot of time trying to figure this out.

When you can finally find the New Repository link from the News Feed page, it doesn't have an option for choosing the account for the repository. You need to do that before going to the New Repository page...

If you are having problems like this I am working on getting a cli interface with Github. Look at things like issues and commits. https://github.com/myusuf3/octogit

You are aware there is a quite mature CLI interface already available right?


The lack of a 'star/bookmark' button on projects is the single, most annoying problem I have with Github... I hate 'watching' projects I really don't care about, but am afraid I would forget in a few weeks...

I was a bit confused at first when I was just starting to use GitHub, but got accustomed to it by now. Though making configurable menu or at least a lightweight option would indeed be nice, that would help people get used to the site.

Seth Godin had a good piece on UI and information density the other day: http://sethgodin.typepad.com/seths_blog/2012/03/information-...

I dunno, I find interface very convenient. It was horrible before (bitbucket was actually better), but things are changing.

On the first project page, header part clearly contains “GitHub stuff” (issues, stats, network), and next goes ”git stuff“ (files, commits, branches). I can quickly clone or download the project. Issues page also becomes better.

Can't speak for organizations functionality, but it looks OK for usual tasks of most users.

I agree, i was thinking possibly two views could be used.. A repository front-page with readmes, download and forking etc (possibly some social side) and then break away a second page with more of a control panel feel for viewing branch diagrams, commits, diffs etc

This could be a really good solution. They could even play with bringing you straight to the "Code" tab if you were the repo's owner/contributor.

I agree, too. Maybe the less-often used features could rather go to the bottom of the page?

I agree. In particular I am not sure why "Clone in Mac" is put at an obvious place. I never tried it until a minute ago. I would rather see a "Download" button there. Perhaps only I have the minor complaint.

One thing that aggravates me to no end is when I option click the github logo on the upper right hand corner to open an additional screen on a new tab, I get greeted with a modal window of 'Looking for the github logo'.


I feel that there is too much stuff "above the fold" in newspaper parlance. It's fine for main project pages, but for subsections, such as the project wikis, I wish Github would move the content far higher on the page.

Github search is not granular enough, full text search and sorting, search by filename could make things easy

Search within a project would be a awesome option

Just press <t> within a project.

Wow! This solves my major complaint about GitHub. I wish I'd known that two years ago.

Maybe they can create an alternate dashboard, more minimalistic. There is always room for improvement.

I couldn't agree more and I got mocked just this past Thursday for saying so.

The awkward treatment of organizations doesn't help either. I'm constantly having to context switch, and it's even worse because I have an organization with one project, so if I click the organization, I have an "Issues" button. If I click it, I'm seeing issues for that one single project, but there is no "New Issue" button because I'm at the org level instead of the project level. :/

here's how I solve this problem. (ironically Chris Wanstrath, GitHub co-founder, created the technology my solution uses, and apparently did it in response to a random comment by GitHub engineer Ryan Tomayko.)

the tech is called dotjs. you can check it out at http://defunkt.io/dotjs. if you use Chrome as your web browser, it runs arbitrary JavaScript you define for any domain in your ~/.js directory.

my ~/.js/github.com.js looks like this:


you can check the full file for a couple other hacks: https://github.com/gilesbowkett/dotjsfiles/blob/master/githu...

but that's the gist of it (no pun intended).

I also created a Minimal GitHub Dashboard mini-app, built in Node against the GitHub API, but when they changed the API, I didn't bother to update it. I think it was really cool though so I'll link it up anyway. it just pulled a list of your public repos and put links to them in a very readable, very minimal UI.


That's pretty useful; I've always found GreaseMonkey a pain to use when making random small tweaks just for myself.

Does anyone know why dotjs would be OSX only? Would love to use this in Ubuntu as well.

It's not. It's just a simple Ruby server script. Works just fine on *nix machines.

I had no idea Chrome supported this, thanks for creating the user script for it!

I still don't know why people use github instead of bitbucket.

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