Original post

Disclaimer: I am the founder of a company which competes with GitHub. However, I still use tools like GitHub, GitLab, and so on, as part of regular contributions to projects all over the FOSS ecosystem. I don’t dislike GitHub, and I use it frequently in my daily workflow.

GitHub is rolling out a new notifications UI. A few weeks ago, I started seeing the option to try it. Yesterday, I received a warning that the old UI will soon be deprecated. At this pace, I would not be surprised to see the new UI become mandatory in a week or two. I’m usually optimistic about trying out new features, but this change worried me right away. I still maintain a few projects on GitHub, and I frequently contribute to many projects there. Using the notification page to review these projects is a ritual I usually conduct several times throughout the workday. So, I held my breath and tried it out.

The new UI looks a lot more powerful initially. The whole page is used to present your notifications, and there are a lot more buttons to click, many of them with cute emojis to quickly convey meaning. The page is updated in real-time, so as you interact with the rest of the website your notifications page in the other tab will be updated accordingly.

Let’s stop and review my workflow using the old UI. I drew this beautiful graphic up in GIMP to demonstrate:

I open the page, then fix my eyes on the notification titles. I move my mouse to the right, and while reading titles I move the mouse down, clicking to mark any notifications as read that I don’t need to look at, and watching in my peripheral vision to see that the mouse hits its mark over the next button. The notifications are grouped by repository, so I can read the name of the repo then review all of its notifications in one go. The page is fairly narrow, so reading the titles usually leads my eyes naturally into reading any other information I might need, like the avatars of participants or age of the notification.

I made an equally beautiful picture for the new UI:

This one is a lot harder to scan quickly or get into your muscle memory. The title of the notification no longer stands out, as it’s the same size as the name of the repo that was affected. They’re no longer grouped by repo, either, so I have to read both every time to get the full context. I then have to move my eyes all the way across the page to review any of those other details, through vast fields of whitespace, where I can easily lose my place and end up on a different row.

Once I’ve decided what to do with it, I have to move my mouse over the row, and wait for the action buttons to appear. They were invisible a second ago, so I have to move my mouse again to get closer to the target. Clicking it will mark it as read. Then, because I have it filtered to unread (because “all” notifications is really all notifications, and there’s no “new” notifications like the old UI had), the row disappears, making it difficult to undo if it was a mistake. Then I heave my eyes to the left again to read the next one.

This page is updated in real-time. In the old UI, after I had marked everything as read that I didn’t need to look at, I would middle click on each remaining notification to open it in a new tab. On the new real-time page, as soon as the other tab loads, the notification I clicked disappears (again, because I have it filtered to “unread”). This isn’t immediate, though — it takes at least as long as it takes for the new tab to load. Scanning the list and middle-clicking every other message becomes a Sisyphean task.

Aside: I tried adding a custom filter to show only pull requests, but it seems to silently fail, and I just see all of my notifications when I use it.


Anyway, we’re probably stuck with this. Now that they’ve announced the imminent removal of the old UI, we can probably assume that this feature is on the non-stop release train. Negative feedback almost never leads to cancelling the roll-out of a change, because the team’s pride is on the line.

I haven’t spoken to anyone who likes the new UI. Do you?

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~sircmpwn/public-inbox@lists.sr.ht [mailing list etiquette]

Are you a free software maintainer who is struggling with stress, demanding users, overwork, or any other social problems in the course of your work? Please email me — I know how you feel, and I can lend a sympathetic ear and share some veteran advice.


Articles from blogs I follow around the net

How (some) good corporate engineering blogs are written

I’ve been comparing notes with people who run corporate engineering blogs and one thing that I think is curious is that it’s pretty common for my personal blog to get more traffic than the entire corp eng blog for a company with a nine to ten figu…

via Dan Luu March 11, 2020

A new Go API for Protocol Buffers

We are pleased to announce the release of a major revision of the Go API for protocol buffers, Google’s language-neutral data interchange format.

via The Go Programming Language Blog March 2, 2020

Updates in February 2020

This post gives an overview of the recent updates to the Writing an OS in Rust blog and the corresponding libraries and tools. blog_os The repository of the Writing an OS in Rust blog received the following updates: Mention potential bump allocator extension…

via Writing an OS in Rust March 2, 2020

Generated by openring