Published on: July 31, 2019
8 min read
Dive into the history of GitLab's navigation design and learn how GitLab's UX department is making incremental improvements.

As a UX department, we are responsible for creating navigational structures that are intuitive, in tune with user needs, and representative of the numerous workflows of our community of users. However, when designing for the needs of so many different people, we often have to make compromises and not everyone is pleased with the result. Navigation is not just about getting from point A to B; it can shape workflows, empower users to discover new, more efficient ways of working, and ultimately determine how comfortable users are with a product. From the moment users log in for the first time to when they start diving deeper into GitLab’s diverse feature set, our navigation structure is critical for shaping the user's path and, ultimately, their success in using GitLab.
Our UX Research team is always concerned with investigating and advocating for the needs of all GitLab users. We have a history of research that has resulted in incremental improvements to GitLab’s navigation over time. After gathering feedback from many sources over the years, we are excited to lead a strategic, dedicated initiative to improve GitLab’s navigation. As part of this initiative, we will consider the goals and frustrations of all users and assess the experiences shaped by the most common workflows throughout GitLab. We will continue to gather feedback from our product users, customers, and internal stakeholders as a way to identify key opportunities for improvement.
Before we outline our future research and design plans, let’s take a look back and understand GitLab’s navigation design journey.
GitLab's original design
{: .note.text-center}
There are two ways to navigate throughout GitLab: globally and contextually. Global navigation refers to elements that are always available (e.g., browsing between groups and projects using the top navigation bar).
Contextual navigation refers to the elements that change based on the page a user is viewing.
Balancing these levels of navigation has consistently been one of the top challenges in each phase of GitLab’s navigation design.
In a June 2016 blog post describing the pain points that led to
GitLab’s first navigation redesign, Dmitriy Zaporozhets,
GitLab’s co-founder and engineering fellow, stated the following as reasons why GitLab’s UI did not work very well:
|
|
After this redesign, the team continued to iterate and make incremental changes to the navigation.
These changes became more significant when the option to “pin” (to the screen) or “unpin” the left sidebar was introduced. “Pinning” would keep the sidebar static while “unpinning” would remove it from the screen and place it under a hamburger menu icon. There were more unfavorable reactions to the changes after GitLab’s 9.0 release, when the left sidebar was converted into a dropdown
for all users, permanently placed in a hamburger menu at the far left of the top navigation bar.
| "Pinned" | "Unpinned" | |----------|------------| |
|
|
After receiving this feedback, our UX team conducted additional rounds of usability testing and in 2017 we made significant improvements to the navigation.
The decision to reorganize the structure of global and contextual content was one of the more prominent changes.
Global navigation elements would now exist in the top navigation while contextual navigation elements would exist in the left sidebar. These changes were first implemented behind a feature flag, to give users a chance to try out the new flow and tell us how they felt about it. We created a feedback issue so users could discuss their experiences and share their likes and dislikes in an open, collaborative space.
The feedback issue led to additional improvements and highlighted more opportunities to optimize
GitLab’s navigation. Our design team used this feedback to iterate for two release cycles and identify changes that would bring the most benefit, such as flyout menus in the left sidebar
and improvements to breadcrumbs.
In September 2017, GitLab’s navigation redesign became official
and turned on for all users.
Our 2017 redesign
{: .note.text-center}
GitLab’s navigation design has not drastically changed since the 2017 redesign, aside from incremental changes made when adding new feature links to the left sidebar and the introduction of instance-wide workflows. However, even with all of these notable improvements, some users are still confused by finding their way around GitLab, especially when interacting with the left sidebar. Many users have unique workflows based on the features they use, companies they work with, and the amount of time they’ve been using GitLab. As a result, even design decisions that are informed and supported by research can receive negative feedback from those who are impacted by the changes.
Even in 2019, our users describe usability issues that reflect the pain points described in our first navigation redesign blog post. Presently, a large portion of the pain points can be attributed to
GitLab’s rapid growth and increased focus on shipping features for the entire DevOps lifecycle. As the product continues to grow, users who only interact with specific features can become overwhelmed by all of the information and paths available in the interface. In order to avoid a future pattern of frequent changes to the navigation structure, we need to create a systematic approach for addressing the diverse use cases that come along with a rapidly growing product.The outcome of all of the research we have conducted over the years is an understanding of the core pain points and usability issues users face when navigating throughout GitLab. I believe that the main themes of our research initiative should be context and discoverability.
We will investigate the paths that users take throughout GitLab and consider how we should balance the needs of users who have contrasting team sizes, roles, and product tiers. Our goal is to find ways to align with the principle of convention over configuration while still addressing the diverse needs of our users. Please see the navigation research initiative epic for more information. This research initiative will be conducted in the following phases:
If you could wave a magic wand, what would be your ideal vision for GitLab’s navigation? Please share your top pain points, suggestions for improvement, or things you like about GitLab's navigation design in the comments below!
50%+ of the Fortune 100 trust GitLab
See what your team can do with the intelligent
DevSecOps platform.