Leveling up GitHub Stars

Problem statement

GitHub repos are, in many cases, meant to be referenced and revisited. Short of browser bookmarks, with their own UX problems and limitations, starring a repo is the best way to save it for later.

Unfortunately, accessing and searching a list of starred repos is pretty difficult. What if there were an easier way to search your starred repos anywhere on GitHub?

Personas

My hypothesis is that there are three main reasons that a user might want to quickly access a starred repo as a part of their normal workflow.

  1. I frequently need to clone a boilerplate repo, like this one.
  2. I use small code library, and its documentation is the README.md for the rep, like this one.
  3. I want to check on a “reference repo,” like an awesome-list.

Research

Here’s what the current pathway to searching your starred repos looks like— it takes about six interactions to reach your search results, most of them mouse clicks. Additionally, the actual search bar is hidden within the Filter dropdown. I actually didn’t even realize that you could search on the Starred repos list until I opened the Filter dropdown by accident one day.

Original click flow for searching GitHub stars

The current click flow for accessing and searching your starred GitHub repositories.

Data analysis

Without access to internal metrics, it’s difficult to evaluate if this would be a worthwhile use of engineering and design hours. However, here are the questions I’d seek to answer with data to validate my hypotheses and build a case for prioritization.

  1. How many users regularly visit repo pages that they do not own but have not starred?
  2. What’s the breakdown on revisits to starred repos? How likely is a user to go back to a repo (that they don’t own) once it’s been starred vs. a repo that hasn’t been starred?
  3. When users do revisit a repo frequently, what features are they utilizing? (ie, the readme, cloning, issues, security, wiki, etc…)
  4. Are users aware of the command palette? How often do users engage this feature? Are these numbers growing over time?
  5. How frequently do users star repos?
  6. With access to qualitative surveys or UX research conversations, I’d seek to know how else, other than stars, users keep track of repos they need to remember or access frequently.

Proposed solution

To make it easier for users to easily access starred repos within their normal workflow, I designed an update to the command palette that makes stars a first-class feature.

First, I added a link to the Stars page in the default command palette menu. This gives users one-click access to their stars page. I also created a new query prefix, the *, to create a way for users to narrow their query into their starred repos.

Base state of command palette

This is the initial command palette view shown to users when they first open it.

Users can quickly access the starred repos they visited most recently, and their newest starred repos, as soon as they enter the * prefix.

Command palette with * prefix

This is the base state of the * prefix view, where the user can see recently access stars, and their newest starred repos.

As they type, the command palette narrows down their search results.

Command palette, searching for pytorch

When users type a query after the * prefix, it narrows down the listed results to the best matches.

Why it works

Compared to the original click flow, adding star search functionality into the command palette should cut the total execution time, in the best case, by half. At worst, it removes a few clicks and removes the need to visually scan and find the right elements on the page to click with a mouse.

Comparison of current click flow and proposed click flow

Evaluating success

To evaluate the success of this feature, I’d want to keep an eye on the metrics below. Given the time and resources, I’d also want to go through some user testing during the design phase to validate that this approach is intuitive.

  1. How often is the * prefix invoked, and how often does that lead to a successful outcome? (defining a successful outcome as the user choosing one of the starred repos to visit)
  2. Does the rate at which users star repos increase at all? Are we encouraging users to star repos that they visit most frequently because we’ve made stars a useful concept for quick access?
  3. When a user visits a starred repo, how often do they use the command palette to navigate there vs. another method?