Chapter 3

Getting Started

Finding the Right Project

Embarking on your open source design journey begins with finding the right project. Start by taking a moment to reflect on your skills and interests. What are you best at? Perhaps you excel at UI design, or maybe UX research is your forte. Consider the types of projects that excite you - are you drawn to web applications, mobile apps, or desktop software? Maybe you already use a piece of software that you'd like to help improve.

Once you have a clear idea of what you're looking for, it's time to explore the vast landscape of open source platforms. GitHub is the largest host of open source projects and a great place to start your search. Don't overlook other platforms like GitLab, which also host many established open source projects.

To make your search more manageable, consider using project discovery tools. Up For Grabs is a fantastic resource that matches contributors with projects based on their skills and interests, listing projects that are actively seeking contributors. If you're new to open source, look for projects tagged with "First Timers Only" - these are specifically welcoming to newcomers.

As a designer, you might want to focus your search on design-specific opportunities. Check out Open Source Design, a community dedicated to open source designers. The Drupal Design Initiative is another excellent option if you're interested in improving user experience for content management systems. If you're passionate about web browsers, the Mozilla Design team, which contributes to Firefox and other Mozilla projects, might be a perfect fit.

Remember, finding the right project is a process. Don't be discouraged if the first few projects you look at don't seem quite right. Keep exploring until you find a project that aligns with your skills and interests.

Understanding Project Structures

Once you've found a project that interests you, it's important to familiarize yourself with its structure. This will help you navigate the project more effectively and understand how you can best contribute.

Start by reading the project's documentation. The README file is usually the best place to begin - it provides an overview of the project, its goals, and often includes information on how to get started. Look for a CONTRIBUTING file as well. This document outlines the specific processes for contributing to the project.

Many projects also have a CODE_OF_CONDUCT file. This sets expectations for community behavior and is an important document to read to ensure you interact with the community in a respectful and appropriate manner.

Next, explore the project's issue tracker. This is where problems, feature requests, and tasks are logged. As a designer, you'll want to look for issues labeled with tags like "design" or "UX". These are areas where your skills can be particularly valuable.

Most open source projects have some form of discussion forum. This might be a mailing list, a dedicated forum, or a chat platform like Telegram or Discord. These spaces are great for asking questions, understanding the project's needs, and getting to know the community.

Finally, check if the project has any specific design resources. Some projects have dedicated design repositories or wikis that include style guides, design systems, or brand guidelines. Familiarizing yourself with these will help ensure your contributions align with the project's existing design direction.

Contribution Guidelines

Before you start contributing, it's crucial to understand the project's contribution guidelines. These guidelines ensure that your contributions align with the project's goals and standards.

Begin by thoroughly reading the project's documentation. This will help you understand the project's vision, goals, and any existing design principles. This knowledge will inform your design decisions and help you create contributions that truly benefit the project.

When you're just starting out, it's often best to begin with small contributions. Look for issues tagged as "good first issue" or "beginner-friendly". These are typically smaller tasks that are well-suited for newcomers. You might start by improving documentation, creating small UI elements, or even just participating in discussions.

Communication is key in open source projects. Before you start working on a significant contribution, introduce yourself to the community. Share your background, your interest in the project, and what you hope to contribute. This helps the community get to know you and can lead to valuable guidance and mentorship.

It's also a good idea to discuss your ideas before you start working on them. This ensures you're not duplicating work someone else is doing and allows you to get feedback on your approach early on.

Make sure you understand the process for submitting your work. Many projects use pull requests on platforms like GitHub. Familiarize yourself with this process and be prepared to iterate on your work based on feedback. Remember, revision and improvement are normal parts of the open source contribution process.

Setting Up Necessary Tools and Accounts

Contributing to open source projects often requires specific tools and accounts. Let's go through the essentials you'll need to set up.

Version control

Version control is a fundamental part of open source development. Git is the most commonly used system, so you'll want to install it on your local machine. Take some time to learn the basics of Git if you're not already familiar with it.

Project hosting

You'll also need to create accounts on the platforms where the projects you're interested in are hosted. This often means setting up a GitHub account, but you might also need accounts on GitLab or other platforms depending on the projects you choose.

Design tools

As a designer, you'll need appropriate design tools. While many designers are accustomed to proprietary software, consider exploring open source alternatives like GIMP for image editing, Inkscape for vector graphics, or Krita for digital painting. These tools align well with the open source philosophy and ensure your design files are accessible to the wider community.

Make sure your tools can export to the formats specified by the project. SVG is often preferred for vector graphics in open source projects due to its scalability and ease of modification.

Communication

Set up accounts for any project-specific communication tools. This might include Slack, Discord, or forum accounts depending on what the project uses.

Local development

Some projects may require you to run the software locally to fully understand and test your design contributions. In these cases, you'll need to set up a development environment on your machine. Follow the project-specific setup instructions carefully, and don't hesitate to ask for help if you run into difficulties.

Making Your First Contribution

Now that you're set up and familiar with the project, it's time to make your first contribution. This can feel intimidating, but remember, every expert was once a beginner.

Start by choosing an issue to work on. Select a task that matches your skills and the project's needs. If you're unsure, it's perfectly okay to ask for guidance from the community.

Once you've chosen an issue, it's good practice to comment on it, letting others know you're working on it. This prevents duplicate work and opens the door for others to offer help or suggestions.

Now comes the exciting part - doing the work! Create your design, keeping in mind the project's guidelines and any feedback you've received. As you work, document your process and the reasoning behind your decisions. This documentation will be valuable when you submit your contribution.

When you're ready to submit your work, follow the project's submission process. This is often done through a pull request if the project is hosted on GitHub. Include a clear description of your work, explaining what you've done and why. If your contribution addresses a specific issue, make sure to reference it.

After submitting, be prepared to receive feedback. Respond to comments promptly and be open to making changes. Remember, feedback is not criticism of you personally, but a normal part of the collaborative open source process.

Best Practices for New Contributors

As you begin your open source journey, keep these best practices in mind:

Be patient. Open source communities often move at their own pace, which can be slower than you might expect. Don't get discouraged if you don't receive immediate responses.

Maintain a positive attitude, even if your work isn't accepted immediately. Every interaction is a learning opportunity.

Embrace the learning process. Each project you contribute to is a chance to expand your skills and knowledge.

Consistency is key. Regular, small contributions can have a big impact over time and help you build a strong reputation within the community.

Always respect the community. Follow the project's code of conduct and communication norms. Remember, you're joining an existing community with its own culture.

Conclusion

Getting started in open source can seem daunting at first, but with the right approach, it can be an incredibly rewarding experience. Remember, every expert was once a beginner. By starting small, communicating clearly, and persistently contributing, you'll soon find yourself making meaningful impacts on open source projects.

Don't be afraid to ask questions or seek help when you need it. Open source communities are generally welcoming and supportive of newcomers who show enthusiasm and a willingness to learn.

As you embark on this journey, keep in mind that your unique perspective as a designer is valuable. Your contributions can help make open source software more accessible, user-friendly, and visually appealing.

In the next chapter, we'll dive deeper into the collaborative workflows commonly used in open source projects, helping you navigate the technical aspects of contribution more effectively. Your adventure in open source design is just beginning, and it promises to be an exciting and rewarding journey.