Productboard

Productboard

Productboard

Productboard

Challenge one

Redeveloping the design system from the ground up, improving accessibility and constructing full documentation

I joined Productboard in October 2022 to lead their design system team, excited after my time at Hopin. I was replacing a well-respected former lead, so I anticipated high maturity levels in both team and system.


To understand complexity, I explored all Nucleus design system touchpoints to discover where improvements could achieve greater impact. It's never just about components and quality, but also:


  • Communication with product teams

  • Collaboration for everyone's benefit

  • Explaining what the design system is and how to use it

  • Discoverability of assets

  • Reducing components by expanding flexibility

  • Bringing consistency to product UI

  • Improving accessibility

  • A shared design language for teams

Our libraries

Upon first interacting with our Figma libraries, they clearly hadn't been updated recently. They needed attention regarding Auto Layout, enhanced Figma properties and deprecating the large variant amounts currently supported in design and React.


Because of Productboard's huge product offering, Nucleus doesn't support every part, so separate domain design systems were implemented for individual purposes. The intention was close collaboration with the core library, but over time disjoining occurred naturally—the product grew faster than DS could support.

Large component variant volumes and a lack of accessibility consideration were key areas to address in our libraries.

State of product UI

Moving at this pace naturally means skipping hurdles. Productboard's customer interface is very detailed with lots of moving parts, so managing a holistic style guide was challenging, especially with multiple teams contributing quickly.

Misalignment in React

As teams and product scaled, this pressured the Nucleus engineering capacity. Code contributions are invaluable, but when custom components were added without proper governance, the repo became bloated with many components having only a couple of usages. This creates problems such as:


  • Searching and finding the right component

  • Trust that contributions were added correctly

  • Health status considering usability and accessibility


Along with refactoring our Figma library, we formulated a plan for merging and deprecating bulk React components—aiming to bring greater parity between design and code in naming and application.

Challenge two

What to introduce first

Though I identified key focus areas, feedback from the design team confirmed that refactoring the core component library would be most beneficial. This would take time, but going back to foundations and analysing how we name, design and craft components would lead to better understanding, easier discoverability and faster scalability.

By reworking our core component library I was able to reduce the variant volume significantly, whilst providing improved component property usage.

Refactoring

Reworking components was relatively quick, as stylistically I wasn't moving far from what existed. Improvements were in how they were created: reducing variants by utilizing Figma's properties update, fixing alignment issues, and general accessibility improvements in colour usage. The endgame was better adoption within product UI and fewer detachments, particularly with larger patterns like Modals and Menus where empty slots nest components.

Contributing modal

One of Productboard's design principles is efficiency. From a Nucleus perspective, I wanted designers to consider how and when to contribute. Without discouraging this, using existing design system parts before adding new elements cuts production time and cost. The idea was encouraging system-thinking and creativity with what we had available. Regular design pairing sessions facilitated this approach and reduced support time.

Working in existing constraints

The product has been around since early 2014 and hasn't changed visually much. Branding and user interface are closely tied with plenty of stakeholder opinion. This gave me rough thinking to work with, but we lacked specific guidance on component usage and working with Nucleus. A dedicated documentation space was needed for this detail.

Challenge three

Documentation

Early foundational documentation had begun before I joined but was basic and needed updating. We used Supernova as our DS management tool to document all usages, code and copy content, plus detailed token management. I included quarterly survey analysis, changelogs of latest Nucleus releases and component health status during refactoring.

Announcement plan

Refactoring consisted of many moving parts beyond design tweaks. React implementation and documentation had to be tested, reviewed and completed before announcing to teams. Component complexity determined migration time allowed for designers; a Tier 1 component like Tag needed one week, but a Tier 3 component like Modal was given 4 weeks due to greater understanding required.

Survey

Design systems aren't customer-facing, but they're nonetheless products needing to be user-friendly and tested—the customers being internal. To get valuable insights from design and engineering, a quarterly survey was sent out with scoring questions on satisfaction and usability plus open-ended challenges and improvement suggestions. It's easy assuming my changes were helpful, but this isn't always the case, especially during migration causing legacy headaches.

Survey results make up part of my quarterly Nucleus newsletter for the product teams.

I created quarterly newsletters highlighting component high and low points, documentation sentiment, component usage (volume and detachment %), deprecation levels, Supernova analytics and what's coming next quarter. This detailed breakdown helps management and execs understand how the design system improves product quality for customers while saving development time and costs—the huge value of an adopted, well-maintained design system.

Challenge four

Way of working with Productboard

A major plus point when first talking to Productboard was their design process. Coming from a start-up that was erratic, so hearing the strong business strategy and a process the whole team followed was refreshing. Nucleus is integral to this process, so being transparent with teams on our process and progression is expected practice.


Focus time is vital, but gathering thoughts across the business makes the design system mature correctly, providing content and context users need. In all Nucleus areas, feedback helped me address queries on component crafting, usage or documentation announcements.

Team feedback through Slack, Notion and Loom videos—especially critiques—drove design system evolution by fostering collaboration and improving adoption rates.

Sharing

Providing explorations and WIP teasers helped designers understand the application that goes into design system contributions, demonstrating detail we adhere to and expect from designer contributions. This shareable content wasn't specifically for components, but also foundational and structural design system information, best practices and workshop demos.

Design critiques

Weekly design crits allowed designers to share work for feedback. For me, this was a chance to see how the team includes components and how they're utilized user experience-wise. You quickly see opportunity areas for improvement and what's misunderstood when components are used in product.

The impacts of these changes on the design system

Making large structural changes should naturally improve the design system, but this takes time with inevitable crossover between legacy and updated elements across design files and code base. There's no straightforward refactoring process, and designers particularly struggled with reworking larger components using slots, having that mix of old and new components during library updates and general ease of use, leading to detachments.


Being clear to raise potential issues at the start gave me a stronger mandate while refactoring, but providing guidance via ad-hoc calls, demos and announcements during this time helped reduce impact.

Within Engineering, Product and Design

Design systems are notoriously difficult to monitor successfully over time, making it tricky to sell into the business and provide numbers. Being part of monthly check-ins with execs along with other team PMs was valuable and something I'd support for any design system team. They're part of the product and should get equal attention and praise.

For the product

Productboard had been in sustained growth before I joined, with emphasis on feature development over usability. 2023 became the year of refinement (and an AI product push), giving me the chance to work on merging and deprecation in React, more flexible and reusable components, and going back to foundations to improve accessibility. This was never taken seriously, but as the business grew, needing to attract enterprise customers, being more accessible would have real impact on the product.

" Jon had an un-easy job when he landed in the Nucleus team. He had to take full ownership of an already well-set-up design system and many libraries on the design side. During this time he modelled various ownership competencies inside our domain - from setting up long-term strategy for our team, refactoring almost every component and thus improving the overall domain health, to huge commitment and accountability since he is a one-man army. I'm glad to have worked with such a strong design leader. "

Metrics

Looking at analytical data we've seen core components increase from 31 to 42 (+35%), which seems like more to support. But in fact, we were either taking these from domains as they were used in multiple product parts and we could now maintain them correctly, or there was need for new component additions like Date Picker or Pagination that weren't previously supported.

35%

35%

35%

increase of Core component support from 31 to 42

72%

72%

72%

decrease of variants supported in Figma, down from 3192 to 879

84%

84%

84%

improvement in parity between design and code

The biggest wins were decreased variants supported in Figma, down from 3192 to 879 (-72%), and code deprecation from the React repo. With this removal of legacy design and code, our parity between both has increased to over 84%. This is what really matters as both design and engineering can be confident working with our components, reinforcing React as our source of truth.

Credits

Company

Role

Engineering


Engineering Lead

Role

Design System Lead

Engineering

Igor Kulka, Roman Fausek & Aliaksandr Drankou

Engineering Lead

Ludek Veprek

Productboard

Design System Lead

Igor Kulka, Roman Fausek & Aliaksandr Drankou

Ludek Veprek