Blog Engineering How designing platform navigation is like building a dream home
May 15, 2023
8 min read

How designing platform navigation is like building a dream home

Go behind the scenes and learn how we ideated toward a new user experience for GitLab.

home-improvement.jpg

Deciding on the look and feel of a new home is already challenging. The level of complexity grows even more when ideas involve altering the underlying structure itself. Every decision you make affects the feasibility of future changes. Choosing what is best can be subjective, even when rooted in the realities of physics and mathematics. Now imagine millions of people using this house, each with unique requirements. That gives you an idea of how it feels to update the navigation experience of GitLab. Picking a fork in the road means it won't be perfect for every user, but it needs to work well for the vast majority.

We'll share how our design process ideated through each solution to make a vision into reality.

Dreaming of a new home

You might dream of an extra bedroom, an open kitchen, or more efficient use of space. Regardless, it all starts with a vision of what comes next. In our release post, we shared how our North Star vision drove our direction. We used these themes to focus on the meaningful foundational elements as we explored new concepts. We built our design assumptions around these themes before filling out user interface elements.

Theme 1: Minimize the feeling of being overwhelmed

The project and group left sidebars have been growing. Features were in different places and often required users to search for the page they needed. We started addressing these issues in the following ways:

  • Reorganize page elements into consistent collections across groups and projects to reduce confusion.
  • Start everyone with sensible defaults for a baseline that accommodates most user needs.
  • Provide customizable options in the left sidebar which could reduce discovery time in the future.
  • Give back screen real estate so the focus remains on the page content and task.

Theme 2: Orient users across the platform

It could be difficult for a user to know where they were inside GitLab. Landmark clues like sidebars, breadcrumbs, and page titles weren't consistent and occasionally were missing. Without these wayfinding cues, jumping from one task to the next was challenging if the next thing wasn't directly in front of the user. To give a sense of place, we:

  • Show the pages specific to a given context by displaying all available options in the left sidebar.
  • Fix breadcrumbs at the top of the window to help users retain their context even when scrolling.

Theme 3: Allow users to pick up where they left off easily

There can be a lot going on at one time in GitLab, so it can be hard to know what to do next. It should feel natural to transition into GitLab and get started. Helping users transition means we must:

  • Make it clear that the homepage of GitLab can redirect anyone to their next task.
  • Keep things familiar so that anyone will feel right at home.
  • Reduce the number of page visits required to jump between tasks.

Visualizing the navigation layout

It's helpful to envision how you would use each room in a house before pulling it all together. We started by visualizing five different concepts, and each idea explores a unique design choice to address our assumptions.

Idea 1: Minimal features on display
There are so many features that could appear in the sidebar. How might it feel to only show a select number of them?
Minimal features

Idea 2: Fewer collections to choose from
Organizing features into distinct collections mitigates growth but impacts discovery time. Would it be simpler to search through only a few options?
Fewer collections

Idea 3: Sidebar broken into multiple layers
GitLab can feel relatively flat in its structure, but it is far more complex than that. How might we use distinct layers in the sidebar to aid navigation around the platform?
Sidebar layers

Idea 4: Breadcrumb navigation
Breadcrumbs are a familiar pattern for distinguishing locations. If the breadcrumb were more prominent, how would it impact awareness?
Breadcrumb navigation

Idea 5: Static navigation elements
The sidebar has always been specific to the context. How would making the sidebar consistent across all screens impact user mental models?
Static navigation

Exploring multiple ideas let us evaluate different design decisions before settling on a final plan. We created a baseline across all the concepts, exposed them to others for feedback, and tested them against a set of standardized tasks:

  • Task 1: Where would you go to see all issues for a project?
  • Task 2: How would you create an epic in a group?
  • Task 3: Imagine you started writing a comment and had to navigate away to address something else. Where would you go to find that comment?

Six frame panel

Two of the concepts felt easier to use and didn't require relearning. Both of these concepts build on familiar user flows. The other four proposals were overwhelming. The breadcrumb, collapse sidebar button, search bar, and pinned section were elements universally appreciated.

Making tough choices

These insights left us with one lingering question. Should we split the navigation across a top and left bar or move it all into one sidebar? We were down to two unique layouts but torn on which worked best. We had similar concepts with a few visual differences, but the key differentiator was the layout. So we devised a research plan with tasks specific to each user persona to observe how these participants adapted to these new concepts.

Codename: Element Reswizzle Codename: Super Sidebar
Homepage of two-story Homepage of ranch
Issue list in two-story Issue list in ranch

We learned from our testing that the Super Sidebar was preferred as it allowed for more intuitive navigation between projects without losing context. Super Sidebar supported mature and new GitLab users better in their most common workflows. In comparison, only mature GitLab users found the Element Reswizzle easier. However, the Element Reswizzle offered elements, like icons and tool tips, that users would like to see included in Super Sidebar.

We chose to iterate and use the layout of the Super Sidebar while including aspects that were useful from Element Reswizzle.

Planning the big move

We had tackled the big questions around the scaffolding but hadn't solidified the specifics. We also needed to define color choices, font size and weight, spacing, alignment, icon options, organization of items, and placement of features. The finer details must work seamlessly and feel right, or the scaffolding around the product will fail to demonstrate its value due to a mediocre user experience. We created an epic to house all the work we'd try to accomplish before overhauling the core navigation experience.

Pouring the foundation

Each milestone brought new design challenges and trade-off decision-making. We knew the direction, but it was impossible to change everything in a single milestone. We wanted to ensure the navigation was functional first because the structure is what we were most concerned about getting right.

First time groups appeared in the super sidebar

We first added critical contexts like your work, groups, and projects while unpacking the rest of the feature set. Focusing on the foundation first allowed us to get a sense of the flow of our new house before settling in.

We had team members start trying out an alpha experience early on. Some things might seem right in a design but feel off once in production. An example of this is how users switch contexts. Initially, we created a method built into the navigation sidebar but discovered it was confusing.

"I wouldn't expect the rest of the nav to disappear when I uncollapse the project view. I would expect it to push the other content down rather than taking over all content in the panel." - comment from our feedback issue

Before After
Context switcher before Context switcher after

We pivoted by adding more layering with dropdown disclosure to give a sense of movement. It's not the perfect solution, but it's a good iteration that holds us over until we can design a better experience.

Getting ready to show

Screenshot of the new navigation

Honing the navigation will take numerous rounds of feedback, several more iterations, and plenty of patience. A home is never quite finished neither is the navigation of a platform like GitLab. Before the 16.0 release, we focused on squeezing in as many UX improvements and bug fixes as possible to improve upon our prior iterations. This has brought us to a navigation experience that works beautifully. We are excited to share it with everyone. We are confident that GitLab will become more usable and beloved with each new milestone. Try out the overhauled navigation experience today, and share your thoughts with us in our feedback issue.

We want to hear from you

Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum. Share your feedback

Ready to get started?

See what your team could do with a unified DevSecOps Platform.

Get free trial

New to GitLab and not sure where to start?

Get started guide

Learn about what GitLab can do for your team

Talk to an expert