Josh Black

Your Design System is an Open Source Project

What happens when you think about your Design System as an OSS project

2 min read
  • I've often been inspired by Rust when working on design systems
  • The project is a great example of how to build things in the open
  • Design system teams can struggle with a classic problem, at some point the system will out scale the core group of maintainers
  • This is a great problem to have but it can be unclear how to address it
  • Tightening control can lead to bottlenecks and frustratoin with the system
  • Letting everything go can lose some of the benefits you had in the first place which is why you made the system
  • This is where I found Rust inspiring as it helped to tackle this challenge of moving a project forward under a shared vision and set of values with more and more people contributing
  • When thinking about your design system as an open source project, one important thing to remember is that it needs to not just be open source but also follow the principles of being open source
  • Just because someone can see the source code of your project does not mean that they can easily contribute to it, participate in direction setting, or feel involved in the project in a meaningful way
  • There are a couple of categories we can use for people and their relationship to the design system:
    • A user, someone who uses the design system
    • A contributor, someone who contributes to the design system either through bug fixes or feature development
    • A maintainer, someone who regularly contributes to the design system and helps to steward the process of maintaining the system
  • When thinking about the project as an OSS project, you have systems in place to help people contribute at any point that they're interested in
  • You can start out working on bug fixes, then transition into landing more complex changes to the system
  • The most important part is that things are open and that attention is giving to improve this experience
  • For example, have a design system buddy to help out new contributors land contributions to the project
  • The goal is to increase a sense of shared ownership on the system and scale the velocity of the project while still maintaining the shared vision, purpose, and values that the project was created on