You need a design system
January 4th, 2022

In recent years, user expectations for UX have increased dramatically.
This is particularly evident in the case of Google Maps. When Google Maps first launched, its interface was relatively simple and had minimal user interactions.

Over time the interface has become much more complex, exposing a wide range of features and functionality.

This increase in complexity is representative of the broader trend of modern applications. More people have become accustomed to using high-quality, intuitive, and easy-to-use digital products. Users have come to expect similar levels of excellence from all of the applications and websites they use.
Simply put, a large amount of the complexity of modern applications has shifted to the frontend. This has put pressure on developers and designers to create user experiences that are not just functional, but enjoyable and engaging.
Companies need powerful tools to build UIs that match users' expectations. Enter the design system. At it's core, a design system is a showcase of the functionality and style of UI elements that are used by your organization.
How does this tackle the complexity problem described above? Complexity can be a vague concept, so let's get a good working definition first. Let's say that a complex object is one that can be in many possible states.

Let's look at a UI component that allows users to select a specific date.


The next step up from a design system is to have it create and publish your UI components to a shared repository. This allows other developers to leverage the design work that has already been done, without having to worry about implementing UI components from scratch.

The existence of popular UI libraries like MUI and Bootstrap highlights the fact that many developers don't want to spend a lot of time thinking about UI. They want to focus on other aspects of the application, and be able to quickly and easily incorporate high-quality UI components without having to worry about the details.
By publishing your UI components to a shared repository, you can unblock these developers and allow them to easily use the design work that has already been done. This can save them time and effort, and ultimately help your team move faster and be more productive.