GitLab · 2024–25 · Authentication

Passkey Authentication

GitLab needed phishing-resistant login for millions of developers. I designed the MVC and led the full feature — navigating a fundamental product direction question before a single screen was designed.

Role
Lead Product Designer
Timeline
Apr – Jul 2025
Team
Auth Engineering, Product Security, PM
Status
Shipped · GitLab 18.1
Overview Define Process Solution Outcomes
Overview
From MVC to full feature.

I designed the original MVC — passkey creation from settings and basic sign-in. When the project expanded, I was assigned to complete the remaining flows: deletion, recovery, device upgrades, and registration during onboarding and sign-in.

Before designing, I identified a critical unanswered question that would shape every flow downstream.

Define
What are we actually building?

The brief described passkeys as a primary sign-in option — but left open whether passwords would remain. These are fundamentally different products with different risk profiles, recovery models, and error states.

Is passkey an alternative to password — or a replacement? The answer changes everything downstream.

ConsiderationPasskey as AlternativePasskey Replaces Password
Account creationSet password, then offer passkeySkip password; passkey only
Recovery riskLow — password is fallbackHigh — lost device = no access
MFA + deletionPassword covers MFA gapLast passkey deleted + MFA enforced = lockout
Design scopeAdditive flowsFull auth journey reimagined

Decision: passkeys as primary sign-in alternative, password retained as fallback.

Process
Six use cases, one system.
01
Use case mapping
Defined six scenarios: new user (with/without 2FA requirements), existing user login, passkey management, safe deletion, and WebAuthn device upgrades.
02
Design & cross-team review
Designed end-to-end flows in Figma. Reviewed with Authentication and Secure UX teams. Key iteration: consolidating password, passkeys, and 2FA under a single Account settings area.
03
Unmoderated usability testing
15 participants across all primary scenarios. 90–100% task completion. Clarity gaps identified in WebAuthn upgrade messaging and 2FA organization requirements.
04
Iteration + navigation change
Refined messaging. Drove a nav change to move Password under Account — validated across two prior usability studies. Completed specs and security review handoff.
Solution
Three decisions that shaped the design.

Unified auth management. Password, passkeys, and 2FA consolidated under Account — one place to understand and manage how you sign in.

Safe deletion logic. A gate detects when deleting a passkey would leave a user locked out under enforced MFA, and routes them to enroll another method first.

WebAuthn upgrade path. Identified that existing security key users could upgrade devices to passkeys, giving them both sign-in and 2FA from one device. Designed detection and upgrade flow as an addition to scope.

Figma screenshots coming soon
Outcomes
What shipped and what it meant.
90%
Projected reduction in account compromise
Passkeys are phishing-resistant by design — industry standard projection.
15
Participants, 90–100% task completion
Validated before any production code was written.
18.1
Shipped on schedule
Met FedRAMP & SOC2 requirements critical for enterprise contracts.
Next
Custom Admin Role