Mor Naveh
Snyk

Security DB search, 2025

Redesigning search for a growing database

The Snyk Vulnerability Database helps developers and AppSec engineers evaluate open-source packages: how secure they are, how well maintained, how popular, and more. Originally it only supported packages with known vulnerabilities. Since users want to learn about every package they consider using, not just the vulnerable ones, the database needed expanding to include secure packages too.

This expansion put new demands on the database's search, which already had usability challenges. It needed a redesign to handle both secure and vulnerable packages.

I redesigned the search experience to support non-vulnerable packages and improve overall usability.

My work

  • Problem definition
  • Current state research
  • Goal definition
  • Flow mapping
  • Final designs

Before diving in

Some of the final designs

Staying up to date with the latest vulnerabilities discovered

Browsing the latest vulnerabilities in a package manager

Avoiding vulnerable, risky packages.

Search results for a CVE, showing a single vulnerability result

Finding healthy and up-to-date packages to use.

Package search results with health scores and status tags

Back to the start

Understanding the problems with the current state

I researched the current state to make sure focus is being put on the right problems:

1. Secure packages are invisible

Results only include vulnerabilities, so packages without known vulnerabilities never appear, even once they're added to the database.

2. Packages aren't standalone results

Searching for a package returns a separate entry for each of its vulnerabilities, so the same package appears many times (see the "Affects" column).

3. CVE searches bury the source

A CVE search returns the package where the vulnerability originated, mixed in with many operating system packages that depend on it. This makes the original source hard to find.

4. Package searches return the wrong packages

Open source packages with similar names crowd the results, hiding the package the user wanted.

Original search design

The current search design, a table of vulnerabilities

I identified the key goals derived from the pain points

Find the right result, fast

Help users quickly find and clearly identify the results they're looking for.

Find any package, vulnerable or not

Include vulnerability-free packages in the search results.

Through research, I uncovered three main search scenarios

I need Snyk to help me vet an open source package based on its parameters.

Learning about a new vulnerability

The user (usually an AppSec engineer) discovers a newly disclosed vulnerability and wants to learn about it and the packages it affects.

Evaluating a package

The user (usually a developer) wants to evaluate a package's security status and health before deciding to use it.

Exploring a package manager

The user (for example, a security researcher) wants to explore different package managers to check for newly discovered vulnerabilities.

A logical search flow for each use case

To make sure the designs cater to the user needs, I mapped the desirable flow for each scenario:

Learning about a new vulnerability (searching for a CVE)

The user searches for a CVE, results show Application packages focusing on CVEs, the single right result appears, and the user can adjust the search to see more results

Evaluating a package (searching for a package)

The user searches for a package, search results show Application packages, most relevant results show with exact matches clearly labeled, and the user can adjust the results to show operating system packages and explore any CVE

Exploring a package manager

The user clicks a package manager logo in the homepage, all relevant CVEs and packages appear in the search, and the user can filter by different Applications and operating systems

The new designs

The new search: a faster path to the right answer

Letting the user goals lead the way, the needed design changes were clear enough:

CVE search showing the vulnerability result with Has fix tag

Finding the right CVE faster

  1. Application filter on by default. Users are most likely looking for the application package, so that result comes first.
  2. "See operating system results" link added. If the default result isn't what the user was looking for, there's easy access to the rest.
  3. Severity and "Has fix" added on each CVE. Users can quickly assess the risk and the effort to fix it.

Finding and assessing packages is faster and easier

  1. Non-vulnerable packages appear in the search. Previously, only packages with vulnerabilities were returned.
  2. Exact matches are marked for quicker recognition.
  3. Security status, health score and description added. Users can now assess relevance without opening the package page.
Package search results for lodash with exact match labels, security tags and health scores
Browsing all results for a package manager with filters

Browsing with a purpose - focusing on the most important information

Whether looking for the most recent vulnerabilities, or browsing to discover new packages, the added information and filtering helps.
It's visible right away which vulnerabilities can be fixed, how packages are affected by them, and how recent they are.

Next steps

Part of a bigger initiative

These designs are part of a broader initiative to include non-vulnerable packages in the Snyk Vulnerability Database, now renamed the Snyk Security Database. I also redesigned the package page to bring in information from other Snyk domains, as well as the homepage to add the latest Snyk branding and several UX improvements. I'd be glad to walk through these on request.

More case studies

What's your next big challenge?

I bring clarity to products and alignment to teams, so you can move faster and see real results. Let's work together.