The Vanilla Layer
Having evaluated and discussed a number of design systems at this point, I'm curious about how locked-in brands are to their design systems. I've found that the frequency with which an interface should be refreshed can vary significantly. For instance, GitHub likely doesn't need frequent changes due to its role as a developer productivity tool, while a consumer-facing interface like Airbnb's might require more frequent updates to stay fresh, modern, and polished for its customers.
From what I've seen, design systems don't age well. Their built-in inflexibility can cause them to obsolete themselves as redesigns become necessary, and often require starting from scratch. I suggest that design systems might be more ephemeral than we want to accept.
This brings me to my proposed two-tiered solution:
Vanilla Tier: A base layer focusing on essentials like accessibility and cross-browser support. It doesn't even need to function on its own—it just provides the groundwork for the next tier. Most critically, it shouldn't include layout logic. I think this is what differentiates it from a typical design system.
Brand Tier: Builds upon this foundation, adding style, layout, and brand specifics. This tier allows for evolution without the need for a redesign from the ground up.
I believe a vanilla tier could become a more permanent base, escape the design system death loop, and reach a state of maturity—especially as it’s exercised by the variety of tiers built on top of it. My employer uses a similar approach to manage multiple brands, creating a base system that each brand can adapt to their needs. Similar solution to a different problem there.
Is your company doing something like this now? I'd love to hear about it! Feel free to reach out on Mastodon at @mknepprath.