UpGuard’s Design System

UpGuard had one product when I joined: UpGuard Core. It was a beautiful pile of UX debt. This is case study is focused on how a design system was developed. Later, we applied it when designing UpGuard CyberRisk.

 
 

Problem

How might we create a system so that our software is predictable and meets expectations (good products act like good people)?

 
 

Results

The engineers were able to make great UIs without my help.
It was hard to keep it up to date between Sketch and code.
The system worked when we started a new product.
It was challenging to get all the teams to use the React library.
 

The process

When I first joined UpGuard, we created a brand guide. Concurrently, I was conducting a lot of interviews and exploration in order to understand the product architecture, product usage, and the users themselves. Using that knowledge, we then built a philosophy, layout foundation, components, and interaction patterns.

 
 

Brand Guide

  • Colors

  • Typography

  • Logo guidelines

  • Imagery guidelines 

  • Iconography guidelines

Design System

  • Components 

  • Patterns

  • Layout

 

Understand product architecture

We made a map of the product to get a sense of how the navigation worked and where confusion might occur.

 

Understand product usage

Working closely with PMs, the customer success team, and engineers, we mapped out common workflows.

 

Understand the user

I read the book "The Phoenix Project" and conducted interviews with the customer success team, leadership, and sales to understand the problems UpGuard tries to solve.

 

Build a philosophy

We followed three main tenants when creating and adding to the system.

 
Components and patterns must be robust enough to apply to many different interactions.
Be consistent use aspects of other patterns and try to combine smaller components
Connect. Think about how this new pattern connects to other interactions ask if it is clear
 

Create a high level guideline

We created compartments for acting vs. viewing data.

 

Identify potential layouts

Below the header was a work area that housed the relevant data is displayed.

 

Create patterns & components

We had all the easy stuff in there like buttons, searchable dropdowns, chip-created query bars, radio buttons, text inputs, and error states to name a few.

These items were created in a React library with example code developers could use as a starting point.

 

Spec out the details

A header was placed at the top of the page. This housed all the actions and high level information.

 

Add new stuff

We added many patterns. A timeline, a workflow, and commenting to name a few. 

 

Conclusion

This was my first design system. 

The main thing I would have done differently is the navigation. I totally left it out and it ended up being the only thing that was confusing to users. 

The React library built from the system specs had a low adoption rate on some engineering teams. If I were to do this again, I would have spent more time building alignment between teams.

 

Other case studies

UpGuard CyberRisk

UpGuard CyberRisk

Lead Product Designer • 2016-2018

A web app that monitors external-facing IT assets for security flaws.

 
dribbble.png

Malwarebytes

UI/UX Designer • 2015-2016

Malwarebytes website redesign.