An explanation of why the Tecton design system is integrated within the broader Tecton repository.
People sometimes question why our design system is integrated within Tecton, rather than standing as an independent product with its own repository and documentation. At first glance, it may seem like they are unrelated, but they are actually closely connected.
The design system was initially developed in conjunction with Tecton's platform and capability tools. They are intricately linked under the surface due to the challenges they were meant to solve at the time.
When products use Tecton to deliver micro frontends (what we refer to as SDK or Tecton modules) to their users, the platform and capability tools provide the ability to deliver resources such as CSS to the modules. That CSS is used to style the web components of the design system, helping make the module visually consistent with the platform it is hosted on.
Additionally, the platform tooling can be configured to dynamically add options to components like a q2-dropdown or tabs in a q2-tab-container. These added features can redirect users to a module or open a modal, among other things.
These are the most important aspects of how the design system integrates with the platform tooling, though there are other areas of overlap as well.
Users employing Tecton to render modules in their products, or developers building those modules, often utilize both the platform and the design system together. For instance, they might use one capability to fetch a list of accounts and then use the q2-card component to display those accounts on the page.
To avoid confusion and make navigation easier, we chose to consolidate everything. We've worked hard to distinguish between different parts of the technology clearly, but we are also trying to improve it more.
With the release of the design system package, we've provided a more efficient way to use the design system without needing the platform tooling and capabilities. Users simply install the package, and during the setup, they can choose to exclude the loading of any unwanted components.
Our hope is that this allows teams to consume and deliver exactly what they need and nothing more.