The core problem arose from inconsistencies between Gecko Engage and Gecko Chat. Both products shared similar features but were built with different technologies and had diverging user interfaces. This divergence created silos within the engineering teams, often leading to under-resourced areas and design inconsistencies.
Without a unified design system, teams spent unnecessary time reworking the same components, which led to a fragmented user experience and inefficiencies in product development.
I led conversations with key stakeholders, including product managers, designers, and developers from both teams. Some key insights from these discussions:
This feedback solidified our goal to create a unified design system that would ensure consistency, increase development speed, and allow for greater cross-functional collaboration.
The design system was built on four core principles:
These principles guided every decision throughout the development of the design system.
I conducted a full audit of the existing components across both products. This involved:
The audit threw up some interesting results. For example, it was discovered that Gecko Chat utilised seven (!!!) different dropdown variations. Instead of re-using existing components, bespoke dropdowns were being created to achieve the same things - this would definitely have to change!
I worked closely with Scott and the engineering teams to ensure that the design system would be scalable and aligned with our chosen front-end framework, React-Bootstrap. We implemented design tokens for consistent use of colors, typography, and spacing across products (this had already been created in my Figma design system so we could move on that very quickly). This ensured that developers could implement the components consistently in the codebase, reducing discrepancies between design and development.
A key challenge was ensuring components were responsive and scalable across different screen sizes and platforms. By building the design system on React-Bootstrap, we were able to leverage its responsive grid system and scalable components, but for more custom elements—such as emoji pickers, chat bubbles, and command windows — we had to build them from scratch or use other React libraries, ensuring that they fit seamlessly within the overall system.
To our advantage I'd already previously spent time building a Figma design system, so all components had been pre-designed meaning we could build straight away.
When designing the Figma library my focus was on flexibility and adaptability:
I led the creation of comprehensive documentation for the design system. Where each component was documented with:
This documentation became the single source of truth for both designers and developers, reducing miscommunication and ensuring smooth collaboration across teams.
Our product is used extensively in the education sector, where accessibility is at the forefront of all institutions minds therefore we ensured that accessibility was built into the design system from the start. Every component was tested for:
Once the design system was in place, in collaboration with the engineering department we discussed the best way forward for rolling it out into the wild We had two options to weight up:
We were all in agreement that both options aren't straightforward but with the Chat product being significantly less complex, we felt it would be easier to implement the design system there first. After successful deployment, we then rolled it out across the Engage product. This cross-product implementation ensured a consistent user experience across the entire Gecko platform and removed all front end silos that pre-existed.
Post-launch, we tracked several key metrics:
The main takeaways from the project were: