How to run a design system contribution model that doesn't collapse
Open contribution sounds democratic and scales poorly. Here's what actually works.
Every design system team has had the same conversation about contributions. The system should be open. Nobody should be blocked waiting on the system team.
That conversation usually produces an open contribution model, and open contribution models usually collapse.
Why open contribution fails
The contributions that arrive in an open model are not a representative sample of what the system needs. They're a sample of what individual teams needed urgently enough to build themselves. An override style for a specific marketing use case. A variation of a card component that works for one product surface. A specialized input built for a one-off form.
These contributions are technically sound but structurally wrong for the system. They optimize for the contributing team's context, often at the expense of everyone else's. They conflict with existing patterns or introduce naming that diverges from the system's.
The system team reviews them, finds problems, requests changes, and the contributing team either does the work or doesn't. If they don't, the contribution sits in a queue. If they do, the negotiation about what makes something "system-quality" takes longer than it would have taken the system team to build the thing themselves.
A better structure
The model that works: the system team owns the API, contributors own use cases.
The system team is responsible for whether something belongs in the system, what it looks like as a component, and how it relates to existing patterns. Contributors are responsible for documenting the use case they're building for, providing design mocks, and being available to give feedback during development.
This isn't a committee model. The system team still makes the call. But it makes the contribution useful even when it doesn't result in a new component. A well-documented use case that doesn't meet the bar for a generic component is still valuable: it's input that informs the system's roadmap and documented context for the next person who hits the same problem.
What makes this work in practice
The system team has to be responsive. If a contribution takes six months to evaluate, teams will stop contributing and build outside the system. Set a specific SLA for contribution evaluation. Two weeks to an initial response is reasonable. Hold to it even when the team is stretched.
Be honest about the bar. "This doesn't meet the threshold for a generic component" is a fair answer when you explain what threshold means. "Not right now, and here's what would change that" is better than "not right now" with nothing attached.
The teams most likely to contribute valuable work are the ones building complex or unusual surfaces. Invest in those relationships directly. A data-heavy product team that's been forced to build outside the system is a better investment than broad open-source-style contribution tooling that nobody uses.
Be the first to rate this article.
Let's work together.
Open to select projects and collaborations — design systems, accessibility, and AI-native product work.