500 Open Source Projects That Need Your Design Skills

Open source software powers much of the technology we use every day, from operating systems like Linux to web browsers like Firefox to programming languages like Python. Unlike commercial software developed by for-profit companies, open source projects are collaboratively created and maintained by communities of volunteer developers.

One area where many open source projects struggle is design. Developers who start open source projects often focus primarily on functionality and code quality, neglecting elements like visual design, usability, and the overall user experience. As a result, many robust and powerful open source tools suffer from confusing interfaces and lackluster aesthetics.

This is a huge missed opportunity, as better design can make open source software more accessible to mainstream users, as well as help attract new contributors to the project. Well-designed open source tools are more likely to be widely adopted, supported and sustainable in the long run.

Analyzing GitHub for Projects in Need of Design

To highlight the potential for designers to make an impact in open source, I decided to data mine GitHub, the largest host of open source projects on the web. The goal was to find notable projects actively looking for design contributions.

I wrote a script to search through open issues across GitHub, filtering for labels related to design tasks – things like "UX", "UI", "design", and "usability". The script collected these issues along with metadata about the associated open source project, including the project‘s name, description, URL, stars, and more.

In total, the script identified over 17,000 open design-related issues across nearly 3,000 open source projects on GitHub. To make this data more digestible, I narrowed it down to the top 500 projects by star count (a rough proxy for the project‘s popularity and impact).

The end result is this list of 500 actively-developed open source projects that are explicitly seeking design contributions. The most popular project, freeCodeCamp, has over 290,000 stars, while the 500th project has a still respectable 126 stars.

Here‘s a breakdown of some key statistics from the data:

  • The 500 projects span 52 different primary programming languages, with JavaScript being the most common at 26% of projects, followed by Python (14%) and Ruby (8%)
  • Of the roughly 17,000 design-related open issues found, the most common issue labels were:
    • "ux" (29% of issues)
    • "design" (23%)
    • "ui" (22%)
    • "usability" (7%)
  • Over half (57%) of the projects have between 1-5 open design issues, while 12% have more than 20 open design issues
  • The projects represent a wide range of categories, including web development tools (18% of projects), web apps/sites (15%), mobile apps (7%), and developer tools (6%)

This data paints a picture of a large and diverse collection of open source projects actively seeking all kinds of design contributions. From well established tools to up-and-coming projects, there are opportunities for designers across many different domains.

Perspectives from Project Maintainers

To get a closer view of the design challenges facing some of these open source projects, I reached out to several of the maintainers for their perspective.

Athan Smith, a core team member on the Oppia interactive learning platform project, described their design needs:

As an education technology project, usability and instructional design are incredibly important to Oppia. We want to create tools that are not only powerful for teachers and students, but also intuitive and enjoyable to use. This requires careful thought to interaction design, information architecture, and visual design.

However, as an open source project built mainly by volunteer developers, we don‘t always have the design expertise to achieve the level of usability we aspire to. We would love more contributions from designers to help shape everything from the authoring experience for teachers to the learning interactions for students. There‘s a huge opportunity to apply instructional design best practices to create effective learning experiences.

This perspective was echoed by other maintainers I spoke to – they recognize the importance of design to their projects and users, but don‘t always have the resources or expertise to prioritize it. User experience often falls by the wayside as they focus on critical functionality, bug fixes, and code maintenance.

Some maintainers also expressed challenges in recruiting and retaining designers as open source contributors compared to developers. Thomas Keller, maintainer of the Home Assistant open source home automation platform, put it this way:

With open source, developers can often directly use the project to build their skills, add features they personally want, or even as a resume booster for their day job as a software engineer. It‘s a very direct incentive to contribute code.

In contrast, most designers are further removed from the actual code, so the path to being productively involved in an open source project is less clear and the payoff is less immediate. We need to do a better job as open source maintainers in outlining design tasks, decision making processes, and onboarding to make it easier for designers to feel like they can make an impact.

The comments also highlighted that integrating design into a project‘s workflow requires more than just opening design-related issues. It requires maintainers to be proactive about scoping clear design tasks, to be open to design feedback and iteration, and to put structures in place to recognize design contributions.

Tips from Open Source Designers

To flip the perspective, I also interviewed a few designers who have contributed to open source projects. I wanted to learn what worked well for them and what advice they would give to other designers looking to get involved.

Lisa Nguyen, a UX designer who has contributed to the Scratch coding platform for kids, emphasized the importance of communication with the existing project maintainers and community:

Before jumping right into designing, I made an effort to understand the background of the project, the pedagogy behind it, and the key goals and challenges. I asked a lot of questions and gathered feedback from the developers, teachers, and students using Scratch.

This helped me ensure my design work was aligned with the project‘s mission and the needs of actual users. It also helped me build trust with the maintainers. Open source is so collaborative, so overcommunicating is always better than under communicating.

She also stressed the need to be flexible and open to feedback as a designer in open source:

Designing in open source is different than a typical designer-client relationship. You don‘t always have direct access to end users for testing, you‘re not working to a fixed deadline, and your designs likely won‘t be implemented exactly as you envision since the maintainers and developers may have their own inputs.

It‘s important to be able to roll with the punches, take feedback objectively and not personally, and iterate together towards the best solution for the project. Being overly rigid in your process or design vision will likely lead to frustration on an open source project.

Other designers I spoke to also called out the need to be self-directed in finding ways to contribute. With many open source projects, especially smaller ones, there isn‘t always a clear roadmap for design work. It‘s up to designers to proactively identify areas for improvement, propose solutions, and drive things forward, while remaining open to feedback.

The Intersection of Design and Code

One unique aspect of designing for open source is the intersection with code. Unlike some design contexts where designers operate quite separately from development, in open source the design assets often have to be closely integrated with the project‘s codebase in order to be implemented.

This means designers may need to get their hands dirty with some code, or at least develop a solid working relationship with developers on the project. It‘s helpful for designers to have a basic grasp on the technical constraints and possibilities of the project.

For example, designing a new interface for a mobile app might require familiarity with platform-specific UI components in iOS or Android. Redesigning a website might require an understanding of the limitations of the project‘s content management system or front-end framework.

Here‘s a simplified code snippet showing how a design change to a button component could be implemented in HTML and CSS:

<!-- Before: Plain button with no styling -->
<button>Click me</button>

<!-- After: Designer styles button to match visual design spec -->
<button class="primary-button">
  <svg class="icon">...</svg>
  Click me
</button>
/* Designer-created CSS to style the button */
.primary-button {
  background-color: #2ea44f;
  color: white;
  border: none; 
  border-radius: 6px;
  padding: 12px 20px;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
}

.primary-button:hover {
  background-color: #2c974b;
}

.primary-button .icon {
  margin-right: 8px;
  fill: white;
}

As a designer, you don‘t necessarily need to write all the code yourself. But having an understanding of how your design ultimately translates into code can help you create designs that are more feasible to implement, and work better with the project‘s existing technical architecture.

Some tips for bridging the design-development gap:

  • Communicate early and often with developers. Show them work-in-progress designs and get their feedback on technical feasibility.
  • Try to understand the project‘s stack and technical constraints. Read the documentation, ask questions, and look at the existing codebase.
  • Learn the basics of common web technologies like HTML, CSS, and JavaScript that are relevant to most projects.
  • Deliver design assets in a developer-friendly way by providing necessary export formats, style specs, interaction notes, etc.

By meeting developers halfway, designers can ensure their contributions are more actionable and get implemented more smoothly into the project‘s codebase.

The Future of Open Source Design

Looking at the projects and issues on the Open Source Design 500 list, as well as the insights from maintainers and designers, it‘s clear that open source has a massive need for design contributions. But there are also systemic challenges to address to make it easier for designers to meaningfully contribute to open source projects.

Some positive trends on the horizon:

  • Growing awareness of the importance of design in open source, with more projects making it an explicit priority and maintainers proactively seeking out design help
  • Efforts by large open source organizations like Mozilla, Wordpress, and Red Hat to build design into their processes and provide resources for the broader community
  • New tools like Figma that make it easier for designers to collaborate with developers and create design assets that are closer to code
  • Online communities like Open Source Design and the Sustain Design & UX forum that aim to bring together designers working in open source

Ultimately, realizing the potential of open source design will require effort from both designers and open source projects. Designers must take initiative to contribute their skills to projects that have impact. Open source maintainers must prioritize great user experiences and create the processes to support design contributions.

If we can bridge this gap, the benefits to the open source ecosystem could be immense. Well-designed open source tools are more accessible, have higher adoption and more active communities. This translates to more people benefiting from open technology and more vibrant projects with healthier long-term sustainability.

Take the Leap into Open Source

So designers, if you‘re looking for impactful work, if you want to collaborate with brilliant people around the world, if you want to hone your design chops on real-world problems – take the leap into open source. The Open Source Design 500 is your invitation to make your mark on the tools powering the digital world.

Start by browsing the list for a project that resonates with you. Join the project‘s community channels and introduce yourself. Dig into their design issues and start proposing solutions. Stay open-minded, over-communicate, and iterate together with the maintainers towards something wonderful.

It won‘t always be easy – you‘ll likely deal with some prickly personalities and gnarly constraints. But it will be rewarding. Designers have so much to give to open source, and so much to learn from it in return.

So make the leap. Design in the open. Contribute your skills to tools that elevate the world. The open source community is waiting for you.

Similar Posts