eSpark
As a fast-growing EdTech company, we had reached a point where scaling our digital product was becoming increasingly complex. The product team, comprised of designers and developers, found ourselves facing inefficiencies due to inconsistent UI elements, lack of design cohesion, and redundant coding practices. As a result, user experience was becoming fragmented across the platform. To address these issues and streamline the workflow, we needed a unified Design System and Component Library to ensure consistency, efficiency, and scalability.
Project Goals
Unify the visual language and interaction patterns across our marketing site and product.
Enable faster design and development cycles by creating reusable components.
Foster a stronger connection between design and development teams by creating a shared language and toolkit.
Improve usability by ensuring consistent interaction patterns and UI elements across the product.
Challenges
With two designers working on different features, design inconsistencies crept in, resulting in fragmented user experiences.
Developers duplicated code for similar UI components, leading to inefficiencies and a higher chance of bugs.
As the company’s product offering grew, maintaining and updating the existing UI became time-consuming and difficult.
Designers and developers had no central reference, leading to miscommunication and wasted time during product development.
Audit of Existing Designs
We started by conducting a comprehensive audit of the existing UI components, styles, and design patterns across all products. This involved documenting every visual element, including buttons, forms, typography, colors, and layout grids.
Stakeholder Interviews
We held interviews with designers, developers, and product managers to identify pain points and needs. We also gathered insights on their workflow challenges and vision for a more efficient process.
The first step was creating a comprehensive style guide. This included defining brand colors, typography, spacing, shadows, and icons. These elements became the foundation of the design system.
We created a reusable Component Library in Figma and Storybook. Each component (buttons, input fields, cards, etc.) was designed with states (hover, active, disabled) and variants (sizes, colors) to account for different use cases.
The design system was built to be modular. Each component could be customized or extended without breaking the core structure, allowing for flexibility while maintaining consistency.
We documented every component and pattern, including guidelines on when and how to use them. This documentation ensured that both designers and developers could quickly reference the same source of truth.
I led the proof of concept (POC) for integrating our design system and component library with WordPress, ensuring a unified source of truth for both our web applications and marketing site. Our goal was to enable a self-serve experience for the marketing team by allowing them to ingest and edit components from our Svelte component library, directly within the WordPress dashboard. I implemented a solution that integrated our Svelte components with Advanced Custom Fields (ACF) blocks. This allows the marketing team to seamlessly add components via an ACF eSpark block in Gutenberg and manage content within each component.
We used Storybook to build out the components in Svelte. This allowed designers and developers to work in parallel, ensuring that the visual design and code were always in sync.
We established design tokens for colors, spacing, and typography. These tokens were synced with the design system to ensure that any change in the design was easily reflected in code./p>
The design system significantly improved visual and functional consistency across the product. With unified styles and reusable components, users experienced a more cohesive journey throughout the platform.
Designers and developers saved time by reusing pre-built components, reducing redundant work. This accelerated the product development cycle and allowed teams to focus more on innovation rather than reinventing common UI patterns.
As new features were added to the platform, the modular design system allowed for seamless scaling. New components could be introduced without disrupting existing ones, and the system remained flexible enough to adapt to future needs.
Users benefited from a more consistent, intuitive interface, improving engagement and satisfaction. The integration also streamlined content management for marketing, reducing dependencies on developers and accelerating workflows.