An unavoidable aspect of design systems is introducing a level of dependency at your company. Whether it's your published code packages or Figma components, once distributed, your consumers become dependent on those assets. They rely on them being available, operational, and maintained well.

That dependability is even more stressed when the design system itself depends on another outside tool. This could be code packages depending on other installable packages (open source or paid for), externally maintained UI libraries for Figma, or Figma plugins.

Dependency instability

Catching Up On The WordPress 🚫 WP Engine Sitch | CSS-Tricks
Many of you — perhaps most of you — have been sitting on the sidelines while WordPress and WP Engine trade legal attacks on one another. It’s been widely

There's been some hot drama bubbling in the web dev community, which has given me food for thought on the topic. The most notable one is WordPress, which is spat with WP Engine (see above), but there's also been some drama around Web Components, with its source coming from high-profile JavaScript framework authors.

Despite these stories being pretty far apart in themes, there is an underlying aspect of dependable assets. One is a tooling provider (WordPress / Automattic) that is deliberately making it harder to access their tools, regardless of consumers' intentions. The other is a tooling provider (JS framework author) expressing adversity to a standard that their users may well rely upon.

Both threaten consumers of these dependencies. I would be extremely foolish to propose that you develop your design system in complete isolation, ensuring that even someone in a cabin in the woods can use your components. I do want to highlight, though, that even the most popular and reliable tools you incorporate into your design system should be carefully considered.

Dependency considerations

Here are some things to consider when choosing external dependencies:

  • Is it actively maintained?
  • Has it been active for a long time?
  • What benefit does it provide over a custom solution?
  • Is it funded?
  • Can it easily be dropped for an alternative?

I could think of more, but these were the things that came to mind when I worked on design system component development. If you have anything to add, I'd love to hear them. I'd also like to hear stories that highlight this issue.


I feel almost contractually obliged to add this xkcd comic for the developers reading this.

Dependency