Back to work

Case study

Design System for SaaS Platform

Created reusable Angular component patterns for consistency, speed, and clearer ownership across a growing SaaS product surface.

My role
Front-end architect and design-system contributor
Context
Shared UI foundations for feature-heavy SaaS dashboards and operational workflows.
Tech stack
Angular, TypeScript, SCSS, Design Tokens, Component APIs

Problem

As product screens grew, similar UI patterns started to diverge. Engineers needed shared component rules that kept delivery fast without hiding important product differences.

Constraints

  • Existing screens with inconsistent implementations
  • Multiple engineers contributing features
  • Need for visual consistency without blocking delivery
  • Accessibility and responsive behavior across dense screens

Approach

  • Identified repeated UI patterns that were causing maintenance cost.
  • Defined component boundaries around product meaning instead of styling convenience.
  • Created documented usage patterns for cards, actions, empty states, loading states, and dense information blocks.

Architecture decisions

  • Kept primitive styling tokens separate from product-specific component behavior.
  • Preferred narrow, composable component APIs over large generic components.
  • Used consistent spacing, type, and state conventions to reduce visual drift.

Trade-offs

  • Not every pattern became a shared component; some were better as documented local patterns.
  • The system prioritized maintainable consistency over novelty in individual screens.

Impact

  • Reduced repeated UI patterns
  • Improved consistency
  • Clarified component ownership
  • Made future feature work easier

What I learned

  • A design system is useful only when engineers can apply it under delivery pressure.
  • The right abstraction is often smaller than the first abstraction people ask for.