I designed four SaaS products from the ground up — and the shared design system that grew alongside them and keeps them in sync.
None of Admix Global's products existed when I joined. I designed Insert.Link, Editorial.Link, Shared.Domains, and Listicle one at a time, each under real deadlines — which meant there was no legacy system to inherit and nothing to "fix." The system had to be built alongside the products, not retrofitted after them.
Every new product is a small fork in the road: reuse an existing pattern, or solve the problem fresh. Without a shared foundation, those small decisions — a button radius, a heading size — start drifting the moment two products ship close together, especially designing solo with no second designer around to catch inconsistency in review. So as the second and third products came online, I stopped treating shared UI as something to copy-paste between files and started building it as an actual library: typography, tokens, and components meant to be pulled into any product, not just the one I was working on that week.
Built a type scale organized by category and size — Heading/Body × SM/MD/LG × weight — where every style carries a plain-language usage note (e.g. "Small buttons, labels" / "Section headings"), so I could stay consistent across four products without re-deciding type choices for each one. Components are structured by variant (style, orientation, size) rather than duplicated one-offs, so updating a component once updates it everywhere it's used.
As the sole designer across all four products, I'm also the one deciding what earns a place in the shared library versus staying a one-off — every product pulls from the same live library rather than a forked copy, so a change made for one product is available to the other three immediately.
One shared library now powers four live products, designed and built solo from the ground up — new products get shaped from existing foundations instead of starting from zero.