Skip to main content

Introducing Design Stack

What is Design Stack?

The Design Stack Ecosystem is a collection of published software libraries, which offer functionality that can be used in combination or independently, to enable developer teams to build design experiences. By offering Design Stack's combined capabilities through design experiences we provide our end customers the ability to customize any product in our catalog with tailored experiences.

Design Stack offers a wide range of SDKs, state management engines, reusable functionality and common UI features. Each library offers a solution for a domain feature which can be consumed to create a design experience for every possible product we offer.

Within Design Stack you will find:

  • React frameworks for building interactive design areas.
  • MobX powered Design Engines for managing design state, layouting and user interactions.
  • API Clients which connect to common Artwork Processing services.
  • SDKs providing reusable functionality for complex design features such as color, embroidery and fonts.
  • Libraries connecting design engine capabilities with React UI capabilities.

Design Stack continues to grow and evolve in what it provides. The ecosystem can be visualized as a series of rings that extend outward until you reach a design experience. Within each ring are the libraries offered within the ecosystem. Libraries which have broad capabilities needed across every design experience sit within the central or core layer of these rings. Each ring builds upon these core capabilities, as libraries create more opinionated offerings for a feature.

The outer most layer of the ecosystem are the design experiences where the most opinionated offerings live. A design experience is tailor made to solve a specific design need such as packaging or print.

Why Should You Contribute to Design Stack

Design Stack is a space for engineers to contribute packages offering solutions to design problems that can be used across design experiences. The benefit of increasing the offerings in the Design Stack Ecosystem allows our teams to deliver features faster and consistently across design experiences.

Often certain features and capabilities require extensive domain knowledge and understanding to implement and it is unrealistic to hoist this concern on every developer building a design experience. If these features can be provided in a reusable format and abstract away the complex business logic required to make a feature work by offering a well designed api, we make the entire ecosystem stronger.

We should strive to build best in class tooling for our teams to build design experiences tailored to the needs of our customers. We need your help to do this! The documentation provided here, along with the discoverability of design stack packages through the Package Explorer enable us to craft high quality software tools to solve every design problem.