
Berkeleytime
Built our first design system
Summary
Years of feature velocity without shared components left Berkeleytime’s UI fragmented and design–eng handoff slow. We shipped the product’s first token-based design system, 35+ WCAG-AA components, and saw +18K MAU the semester it landed on high-traffic pages.
My Contribution
I built our foundational design system in Figma with a team of 2 designers, then, as design lead this semester, translated it into a token-based system connecting Figma to code via Storybook. We shipped a 35+ component, WCAG-AA compliant library.
Timeline
From January 2026 to March 2026
Team
1 Design Systems Lead
2 Engineers
2 Designers
Tools
VS Code
Figma
Storybook
Cursor Agent
Skills
User Research
Prototyping
Usability Testing
Frontend

Before: Our catalog page built with hardcoded CSS
Inconsistent component rendering, a broken A+ bar, mismatched card styles, and an oversized tooltip, all symptoms of miscommunication between engineers and designers working without a single SOT.
After: A Standardized Catalog interface
Unified data visualization components, consistent card hierarchy, and a cohesive interaction language across different states (active and inactive), shipped using our component library and actively being built in Storybook.
Inconsistent UI and repeated product defects had eroded trust among Berkeleytime’s 50,000+ monthly users.
For 50,000+ monthly users, finding and filtering Berkeley courses should feel fast and frictionless, not like piecing together information scattered across inconsistent UI patterns.

Figma Copy-Paste Drift
Without shared production tokens, the Course Card was implemented differently across pages, resulting in variations in typography, color, and spacing.

Inconsistent interfaces traced back to the code
An audit with CursorAgent uncovered hundreds of hardcoded spacing and typography values, alongside references to design tokens that were never defined. Without shared style definitions in code, components relied on individual values and fallbacks, making consistency harder to maintain.
A pattern of inconsistent feature updates had fractured user trust over time.
A 204-person survey revealed recurring issues with broken breadth filters, glitching grade distributions, and missing class sections. Users said these bugs reduced trust in the platform, weakening the reliability that made Berkeleytime preferable to CalCentral, (UC Berkeley's official course enrollment system).

Auditing the existing interface revealed the components causing the most inconsistency and user friction.
We quickly identified technical debt, revealing hardcoded values and fragmented styling that degraded the interface's performance and visual consistency.


A component library gave designers and engineers a shared source of truth.




Impact & Outcome
Reusable UI replaced fragmented patterns across the product, so teams stop reinventing the same screens for each ship.
In the semester we rolled the tokenized library onto Berkeleytime’s highest-traffic pages, monthly active users grew by +18K. Design and engineering now share one source of truth: 35+ WCAG-AA components wired Figma to Storybook, with 1,157+ hardcoded values replaced by tokens so UI no longer drifts release to release. In usability sessions, 20+ comments called out the clearer, more consistent interface.
Key Highlights








