Open source The Complete Guide in 2023

Open source The Complete Guide in 2023

Frantz Kati

10th July 2023

Open source The Complete Guide in 2023

84% of all code rely on open-source. Many people in technology have built successful careers by contributing to open-source. You've heard about open-source on social media and how important it is for your career growth.

There's just one problem — you have no idea where to start with your first open-source contribution.

The good news is... We have a lot of experience in open-source. After this article, you'll understand everything you need to know about open-source.

You'll learn how to find an open-source project and get practical examples of how to make your first valuable contribution.

In this article, we're going to discuss:

Not only will we introduce these topics, but we will also delve deep and provide you with practical, real-world examples.

What is open-source ?

Open-source is something that is publicly available to anyone to use, change and share.

"Something" here can be anything, but it's usually about software called code. It can also be documentation, books, articles, designs, or music.

The idea is the creator or creators of something make it available to the public.

Why would anyone open-source their work ?

There are lots of reasons why creators open-source their work. About software in particular, here are 3 reasons why creators would make their software code public:

  1. Get external help in developing the software
  2. Provide value by allowing others to change the software and use it for their own needs
  3. Get feedback on the software. This could be feedback on security, best practices, or anything else.

Open-source Licenses

A license defines what you can or cannot do with an open-source thing.

A very popular license is the MIT License. The summary of this license states that you can do whatever you want with the open-source project.

mit-license-website

In the case of software, this license means you can use the code for whatever you like. You can make a copy of it, change it, sell it, and resell it. Whatever you want.

Not all licenses are the same. Some state that you can only view the source code. You can't sell or change the source code.

Whenever you encounter an open-source project, identifying the license, understanding it, and following it is essential. Licenses are legally binding.

For open-source projects hosted on Github, you'll usually find the license on the right-hand side of the repository. Here are some examples of projects, their licenses, and where to find them.

Examples of open-source software

An open-source project could be a desktop application, a mobile application, or even a book. Anything created by a creator with a public source is open-source.

Here are 3 examples of different types of open-source projects and their licenses:

1. Microsoft Visual Studio Code

A desktop application and code editor created by Microsoft under the MIT License (You can do anything with the software, but Microsoft is not liable, and there's no warranty).

mit-license

Link to Visual Studio Code Website.

Link to the Source Code On Github.

2. Preline UI Design systems

An open-source design system on Figma created under the Attribution 4.0 International License (You can copy and redistribute the material in any medium or format).

preline-ui-license

Link to Preline UI Website.

Link to the Preline UI Figma Source.

3. You Don't Know JS Yet Book

An open-source book on Javascript created under the Attribution-NonCommercial-NoDerivatives 4.0 International License (You cannot resell the material).

you-dont-know-js-book-license

Link to The You Don't Know JS Yet Website.

Link to the Book Source Code On Github.

Stakeholders

Open-source stakeholders are the people involved in an open-source project. There are usually three key groups: Maintainers, Contributors, and Users.

open-source-stakeholders

  • Maintainers - Lead the project. and determine the direction for the project. Sometimes, they are the original creators of the project.
  • Contributors - These are those that want to add value in some way to the project. Contributors can provide value in many ways:
    • Making changes to the documentation
    • Adding new features or fixing bugs in the source code
    • Creating educational material on the project, like articles and videos
    • Providing community support to other members
  • Users - These are the consumers of the end product of the open-source project. They are a great way to get feedback and continue building.

You'll need to identify the maintainers to contribute to an open-source project. This will help you communicate correctly and get feedback on your contributions.

Why Contribute to open-source?

You'll face many challenges trying to start a career in technology. Open source is a great way to solve some of these challenges.

Here are the top 5 reasons why you should contribute to open-source:

  1. To grow your network - You communicate with maintainers, users, and other contributors when contributing to open-source. You get to know more people in the industry, which helps you expand your connections in tech.

  2. To find a mentor - A mentor can give you a considerable advantage and boost your career. As a part of an open-source community, other maintainers and contributors provide you with feedback on your work and soft skills.

  3. To grow your technical skills - Building practice projects are great for growth, but working on a real-world project used by actual customers is way better.

    This gives you practical experience as a designer, data analyst, or software engineer. You can solve customer problems, experience bugs, and suggest new features. You become part of an actual product life cycle.

  4. To learn new skills - open-source can push you out of your comfort zone. You might work in a remote environment with people from all over the world.

    This gives you a chance to master remote work across different time zones.

    You may have to learn a new technology you knew very little about. This helps you learn skills you never knew were necessary for your career.

  5. To build experience and evidence - As a starter in tech with a blank resume, open-source is the best way to create proof of real-world experience.

  6. To give back - Every tool you learn to use to build a career was created by a group of amazing people and maintainers.

    They work hard every day to provide value to the entire industry. These tools include HTML, CSS, SQL, Frameworks, Web browsers, and even operating systems.

Building the future for the next generation of technologists. Personal satisfaction comes with knowing you provided value to another person's career from a completely different part of the world.

The 3-Step Process To Making Your First Open-source Contribution

This 3-step process will address the most common problems to start in open-source. You'll learn how to:

  1. Find a project
  2. Identify where you can provide value
  3. Join the community

Step 1: Find a project

We'll look for an open-source company or nonprofit to find a project and go from there. So instead of seeing the code first, we'll first find the company, its mission, vision, and values.

A popular website to find real businesses that are open-source is Y Combinator. Y Combinator is one of the most famous investors in the world. Sometimes, they invest in open-source companies.

Follow these steps to find an open-source company:

1. Visit the Y Combinator List Of open-source Companies

Link to Y Combinator List of open-source Companies

Here, you can see the name of each company and a short description of what they do.

ycombinator-list-of-companies

Now here's something significant to remember. The smaller the startup, the easier it is to join and contribute. Also, your contribution will create more impact and allow you to shine better.

So find companies that started in the past 1 - 2 years.

A great choice on this list is Highlight.io: An open-source monitoring platform. This is the company we'll explore for the rest of this article.

2. Explore the open-source Project

highlight-website

When you find an exciting company, visit the website to learn more about what they do, their vision, and their values.

There are 3 things to look out for when exploring:

  1. What the company does. Understand the company's business model, customer base, and industry, so you can later figure out how you can contribute value.

    Highlight.io is a monitoring platform that helps business log, monitor their software products for errors and save user sessions for replay.

  2. The source code repository. This is where the source of the project is hosted. It's usually on GitHub. This will help you know if the programming languages, skills, and tools used match your experience.

    The Highlight.io website contains a link to their Github repository. Most companies will.

  3. The community. This is where the stakeholders communicate and talk about the project.

    It's usually a Discord Server or Slack Workspace. Highlight uses Discord.

Step 2: Identify where you can provide value

It is vital to remember that you are here to provide value. You can only offer value if you understand the needs of the project.

There are many ways to understand what the project needs at that moment:

1. Study Open Github Issues

GitHub issues help open-source projects track their work. They track bugs, new features, and community suggestions.

Go through the GitHub project issues. Understand the current priorities and where you can provide value.

highlight-github-issues

Can your skills and expertise help solve a recently reported bug or contribute to a new feature requested by a user? That's how you figure out where you can provide value.

2. Read past community conversations

Join the open-source community. There's usually a channel dedicated to announcements. See what the team has announced in the past few months. Get a sense of where the project is and where it's going.

discord-announcements-page

Most projects will also use the community to get feedback from users of the product. Read through the feedback. Get an understanding of the current challenges users face.

The insight might help you find a better way to provide value to this project.

3. View the project roadmap

Some open-source projects have a one-year roadmap for what they want to build and achieve. Read through the roadmap if there's one. Need help to find where it is? Ask a question in the community discussions. There usually is one.

Know where the project is going in the next few months. This gives you insight into how best your skills and expertise can help the open-source project get there.

Step 3: Join the Community

You've identified a way you can contribute value to the community. Now it's time to make the step to become part of the community.

Now you need to introduce yourself. There's usually a channel where you can introduce yourself. In Highlight.io's case, it's called #contributing.

This is where you introduce yourself, your goals, and what value you can provide to the team.

Here's an example message you'll send to the channel:

message-for-contribution

To join a community:

  1. Introduce yourself and your skills (Software Engineer, Community manager, QA Engineer, or Designer)
  2. Talk about your goals (Contribute to the project and grow)
  3. Talk about the first thing you'd like to work on (A new feature or fix a bug you found).
  4. (Optional) Ask for help setting up your computer, finding a document, or anything else you need.

Conclusion

Contributing to open-source works best when you strongly desire to give value. Study the project you want to contribute to and determine how to contribute value. This can be documentation, quality assurance testing, or sharing feedback on the product.

We created a practical video course showing you how to contribute to open-source. It builds on the knowledge from this article. It's short and straight to the point; you can complete it in 40 minutes. Get the free open-source course here.