Scaling Design System Contributions at Amazon Ads
I created a community contribution system for Amazon Ads' Storm design system, enabling designers across dozens of teams to share complex components and patterns that couldn't exist in Storm's core library. This system provided a structured pathway for experimental and backend dependent components while setting the team up for measurable future success.
My Role & Approach
Key contributions
Created contribution framework with another designer, establishing clear pathways for community components
Designed contribution workflow from submission through potential graduation to Storm core
Built tracking system using Asana connected to submission forms
Developed communications strategy for launch and ongoing education
Established support infrastructure with office hours, crit sessions, and dedicated Slack channel
The Challenge
Amazon Ads' Storm design system served as the foundation for a $56 billion platform, but teams frequently needed complex components that required backend integration or user-specific data, which couldn't exist in Storm's core library. Without a structured way to share these patterns, teams were reinventing solutions that had already been built elsewhere.
Storm Core maintained high standards—production-ready components with no backend dependencies. But teams needed:
Complex patterns requiring backend integration or user data
Experimental components like AI interfaces that weren’t as yet represented in code
Shared solutions to avoid duplicate work across teams
Clear distinction between core Storm and community contributions
My Approach
Working with another designer, I:
Co-created the framework distinguishing Storm Core from Community Library
Designed the contribution workflow from submission to publication
Built tracking infrastructure connecting forms to project management
Developed communications for launch and ongoing engagement
Established support systems to enable contributor success
Community Library System
Positioning the Community Library
I worked with stakeholders to define the role of the community library within the broader Storm ecosystem:
Community Library documentation in Figma explaining positioning is distinct from Storm Core
Storm Core
Production-ready components
No backend dependencies
Fully documented and maintained by Storm team
Available in Storm UI repository
Contribution Workflow Design
I created a flowchart articulating the end-to-end contribution process, making it clear and accessible for designers across dozens of teams. The workflow established:
Submission Phase
Clear criteria for what qualifies as a community library component
Guidance distinguishing between components suited for Storm core vs. community library
Standardized submission form (connected to Asana) capturing component details, complexity, and dependencies
Required documentation standards
Review Phase
Governance structure for evaluating submissions
Quality standards balancing accessibility with consistency
Assessment of backend/data dependencies
Feedback mechanism for contributors
Publication Phase
Process for adding approved components to the community library
Documentation requirements for published components, including dependency notes
Version control and maintenance expectations
Community Library
Complex patterns requiring backend/user data
Experimental components (e.g., AI interfaces)
Incubator for potential Storm Core candidates
Maintained by contributing teams with Storm guidance
This distinction set clear expectations and helped teams understand when to contribute to the community library.
Communications & Change Management
To drive awareness and adoption of the new community library system, I developed communications materials, including:
Announcement strategy introducing the system to designers across Amazon Ads
Educational content explaining when and how to use the community library vs. Storm core
Usage guidance clarifying the distinction between simple components (Storm) and complex patterns (community library)
These communications were designed to shift designer behavior from building in isolation to contributing to and leveraging shared resources, particularly for complex patterns.
Supporting Contributors
To enable designer success and foster a contributing culture, I established comprehensive support infrastructure:
Office Hours:
Twice-weekly sessions where designers could get guidance
Support for technical questions, contribution process, design review
Lowered barrier to entry for first-time contributors
Weekly Design System Crit:
Open sign-up session for any designer working on Storm-related components
Provided feedback before formal submission
Helped refine components and catch issues early
Built community and shared learning across teams
Dedicated Design System Slack Channel:
Real-time support for design system queries
The community could help each other
Shared examples and best practices
Announced new community library additions
These support mechanisms directly contributed to the system's adoption by making contributions feel accessible rather than daunting.
Tracking Infrastructure
To enable data-driven decisions about component promotion and measure success against our goals, I created:
Asana Board:
Tracking system for all component submissions
Workflow stages from submission through publication
Assignment and ownership clarity
Historical record of contributions
Tagging for component types (complex/data-dependent, experimental, potential Storm candidates)
Connected Form:
Standardized intake reducing friction for contributors
Automatic Asana task creation
Captured essential information: component description, use case, team/product, backend/data dependencies, documentation
This infrastructure was designed to provide visibility into contribution patterns and usage data, enabling evidence-based decisions about which components merited Storm integration or continued investment.
Impact & Outcomes
Why This Matters
Prevents reinventing the wheel
Makes complex patterns discoverable so teams don't rebuild what already exists
Centralizes solutions for components that can't exist in Storm core due to complexity
Reduces duplication and inconsistency
Eliminates redundant work across teams on similar complex patterns
Creates more consistent experiences across products through shared approaches
Enables data-driven decisions
Provides usage and implementation data to identify which complex patterns merit continued investment
Creates clear pathway for patterns to be abstracted and elevated to Storm when dependencies can be removed
Accelerates product development
Improves discovery and reuse of complex components across dozens of teams
Reduces time spent recreating solutions that already exist elsewhere in product
Provides interim access to emerging components (like AI patterns) before formal Storm integration
Drives operational efficiency
Structured sharing of design assets reduces wasted effort
Supports faster iteration through reusable complex patterns
Creates clear graduation path from experimentation to production-ready core system
Success Metrics Defined
Quantitative targets (first 90 days)
Library growth: 7 → 12 components
Component usage: 703.67 → 808 average insertions per week (15% increase)
Ease of contribution: 79% → 82% annual Storm satisfaction survey score
Qualitative indicators
Designer adoption and engagement with the system
Quality and consistency of contributed components
Reduction in duplicate implementations of complex patterns
Success rate of community components graduating to Storm core when abstracted
Effectiveness as a staging area for emerging patterns like AI components
Strategic Impact
Scaled design system governance beyond central team to distributed contribution model
Created solution for complex patterns that Storm core couldn't address
Established pipeline for identifying and promoting successful patterns to Storm core when appropriate
Set precedent for structured community contribution within Amazon Ads
Balanced control and accessibility maintaining quality while enabling broad participation
Enabled faster innovation by providing interim home for experimental components during development
Strengthened Storm ecosystem through clear distinction between core and community offerings