All Work VPN Design System · Components
100+ components built

PIA Design System

Design system for a global VPN platform

Role
Product Designer
Year
2025
Team
1 PM, 2 Designers, 1 Dev
Tools
Figma

Building the system as a team

As part of a team of three designers, I helped build the Design System by turning existing patterns into a shared, practical system and working closely with developers to make it easy to use.

A growing product without a shared foundation

Private Internet Access (PIA) is a global VPN product with high traffic and ongoing experiments.

As the site grew, teams made decisions independently, and similar patterns stopped looking and behaving the same. We built a Design System to create one shared foundation for how design decisions are made.

No shared foundation for design decisions

As the product grew, teams made decisions on their own. Similar elements began to look different from page to page. There was no shared structure to guide decisions, and the product stopped feeling consistent.

Across the site, this showed up as:

Inconsistent button hierarchy
Multiple versions of comparison tables
Different feature layouts solving the same need
Mixed icon styles
Low component reusability

One structure to guide design decisions

Create a shared structure that guides design decisions, defines clear patterns across the site, and turns repeated solutions into reusable building blocks.

Align the product, not redesign it

We approached the Design System as a way to align the product, not to redesign it. 3 simple ideas guided our decisions:

Prioritize stability over visual perfection
Formalize only what proves scalable
Build on what already works

This mindset guided how we handled tokens, components, and content blocks.

Building a system inside a live product

The Design System was built inside a live product, with constant experiments and multiple teams moving in parallel. This created four core challenges that shaped every decision we made:

01
Consistency vs. Cost
Not every imperfect component could be rebuilt. Every change required time, QA, and security review.
02
Building Inside a Live Product
The system was created while the site kept evolving. Old pages, partial systems, and new standards existed together.
03
Aligning Existing Efforts
Different teams had already built system parts. We had to align, refine, and deprecate without disruption.
04
Flexibility in a CRO Environment
Experiments never stopped. The system had to allow variation without breaking structure.

Three layers of the system

The system was organized into three layers:

Web Tokens

The foundational layer of the system. Shared decisions that define how the product looks and behaves.

Colors
Spatial system (spacing & layout rules)
Typography
Motion & transitions

These tokens ensured that every page started from the same visual language before components were even involved.

Core Components

These are the fundamental UI building blocks of the system. Buttons, inputs, navigation, cards, modals, layout elements, and structural components like grid and typography.

Here, we focused on organizing what already existed — clarifying hierarchy, reducing unnecessary variants, and defining clear usage rules.

Web Content Blocks

These are the main sections users interact with on the page. Here, we reduced duplication and defined clear layout types. Instead of many variations, we created a small set of repeatable structures:

Feature blocks — 3 or 4 columns explaining capabilities
Social proof blocks — testimonials and reviews
Conversion blocks — pricing, sticky CTA, payment sections
Utility blocks — steps, widgets, downloads
Hero section — the primary top section

From scattered variations to a predictable, reusable system.

From scattered patterns to one clear structure

What Changed

Before — multiple interpretations of the same patterns.

After — one clear structure across pages.

How It Works Today
Designers start from predefined tokens and blocks.
Developers reuse standardized components.
Experiments plug into an existing structure.

A foundation that scales

Fewer duplicates.
Clear hierarchy across pages.
Faster iteration without breaking consistency.
Next Case Study

CyberGhost — CRO Experiments

View Case Study