Open Source, my experience till now.
Tags: opensource
Published: 2021-10-08 06:21:59

## What is open source?

As per this [Wikipedia Page](https://en.wikipedia.org/wiki/Open-source_software) this is the definition of open source. 

> Open-source software is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative public manner.

Let's break this down into simpler terms.

Open Source software is computer software that has its code open to the public.

This software usually allows users to study, improve, change and redistribute the code to everyone.

Or I may say open source is **code that is designed to be publicly accessible**.

![github.com_nhcarrigan.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1633601877130/11fKEm2-9.png)

### Is it for people other than programmers?

> "There is no gatekeeping in Open Source, this fosters a real sense of collaboration, communication and career development"

-- Eddie Jaoude

Open Source is not about code it is about collaboration and adding value. Every year a lot of no-code contributors join open source and this count increases every year.

Also, we're always making this barrier shorter and shorter. Now even asking questions about projects, giving suggestions for projects and reporting bugs are also contributions.

At the end of the day what matters the most is how you can add value to a project.

The increase of no-code roles in the #opensource Python community

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1633603117948/ihNGVaaKU.png)

### Why should you open source?

#### Impact

By contributing to popular projects you can make a huge impact on the community Rocket But don't run for contributing to popular and big projects, it might demotivate you on the first run.

#### Experience

By contributing to open source you get the real-world experience you need. It can accelerate your skills! This can be a treat for you, but even if you have a good amount of experience, more never hurts.

#### Soft-skills

With open source, you can grow your soft skills like collaboration, public speaking, teamwork and a lot more. I would personally recommend the ["Commit Your Code Community"](https://discord.gg/qyWssnMjrz) by @DThompsonDev.

#### Opportunities

Companies might notice your contributions and offer you a job.

It's a fact that companies that run many open source projects, even recruit noticeable contributors.

#### Knowledge

For instance, if you learn a new programming language, you can contribute to a project using that language.

You can even learn a technology while contributing to projects. A great example is my [PR to Appwrite](https://github.com/appwrite/awesome-appwrite/pull/116), where I learned a lot about Appwrite and then wrote an article on Appwrite.

## What is it like to open source?

I've been contributing to open source since earlier this month. I've contributed to 31 Repos and made 196 commits and 59 PRs. With almost no projects of self at all.

When contributing to Open Source it is just like working with a team. A team that includes millions of members and you working together.

Open Source is a big web of software. Let's talk about Next.js, a really popular open-source project. It uses 266 more open-source projects to work. Similarly, several projects have next as a requirement. And the list goes on and on.

[![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1633668502646/r3dZ43IOJ.png)](https://npm.anvaka.com/#/view/2d/next)

When you contribute to a given open-source project. You are contributing to every single project the project is dependent on the project you contribute to. Can you feel the impact now?

Open Source is like collaborating with people across the globe for a specific feature/bug/documentation update or more.

Like the limitless possibilities of projects are there, similarly there are limitless possibilities for contributions and indirectly no-code contributions.

I would recommend you consider all contributions as contributions. Some people think no-code contributions are inferior but they aren't. At the end of the day what matters the most is the value being added to projects.

Don't run after contributions, run after adding value. That's what I did and recommend you.

Help review other people's contributions, and make them better, that's also adding value.

I'd like to talk about some of my contributions that relate to this. This is about the popular [Linkfree project](https://github.com/EddieHubCommunity/LinkFree), While others were making multiple pull requests, I was adding value to their PRs instead of creating my PRs. I hardly made 2 PRs that too fixed typos. I didn't even make a PR to add my profile yet. But still, I made contributions. Today, GitHub recognises me as one of the Top 5 Contributors of this month.


![github.com_EddieHubCommunity_LinkFree.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1633670768999/v47S9E_NK6.png)

This completely proves that adding value matters not how much or how.

### My first PR

I made my GitHub Account on 30th September, exactly the day I turned 13. Hacktoberfest was a day ahead. What makes sense for me is to make pull requests to practice Hacktoberfest.

My first PR is proud to [EddieHubCommunity/Hacktoberfest-Practice](https://github.com/EddieHubCommunity/hacktoberfest-practice). I just added my name. But still, what matters is that I learnt how to use github.

You can also visit your first PR via this website: https://firstpr.me

### The most challenging issue I worked on.

This was my first time building a complete project as a contribution. I proudly contributed to [Web3Community/devprotocol.xyz](https://github.com/web3community/devprotocol.xyz/issues/2).

I brought the design to code. Automated deployments, and created basic documentation.

Yeah, all of this was broken down into 4-6 PRs, since it's a protip to make frequent but small and quality PRs rather than Big and huge PRs.

I learned how to work with [Astro](https://astro.build) and [Tailwindcss](https://tailwindcss.com).

This was my first time automating with GitHub Actions.

I learnt a lot of technologies along the go. This also tells us that you can contribute to the project while learning what the project uses.

### My Favourite Open Source Project

I am currently learning front-end dev, so I have really little idea about the backend. I encountered a project called [Appwrite](https://xkrishguptaa.hashnode.dev/appwrite-all-you-need-to-know). It has a lot of features that can reduce my effort while building backends. My favourite ones are Authentication and Teams.

> Appwrite is a self-hosted solution that provides developers with a set of easy-to-use and integrated REST APIs to manage their core backend needs.

> Think of Appwrite as a complete toolkit of APIs and Tools with a management console UI to help you make applications faster and more efficient.

-- https://xkrishguptaa.hashnode.dev/appwrite-all-you-need-to-know

### Contributing No-Code

As I've already proved no-code contributions are as valuable as code contributions. It makes sense for me to have experienced it. I have [contributed](https://github.com/web3community/brand-assets/issues/4) [no-code](https://github.com/appwrite/appwrite/issues/1983) [in](https://github.com/kaiwalyakoparkar/classroom-monitor-bot/issues/10) [several](https://github.com/web3community/devprotocol.xyz/issues/23) [occasions](https://github.com/EddieHubCommunity/LinkFree/issues/381)

When It comes to no-code. The best you could out of someone is one that contributes to no-code regularly. That's what I do too. I don't target no-code contributions but somehow these come in front of me and I contribute to them.

As I stated there are infinite possibilities for no-code contributions, I would state a few here:

- Fixing Typos
- Writing Documentation
- Reporting Issues
- Giving Suggestions

I recently contributed to writing documentation for a discord bot.

Here's what I did and how I did it:

1. Asked if I could contribute documentation to the project
2. Installed an instance of that bot on my local machine
3. Used and understood, what all the bot could do.
4. Asked the maintainers about what should I add to the documentation.
5. It's somewhat similar to writing a blog: Wrote the documentation, and used screenshots to better explain the bot
6. Made a Pull Request to the project.

## Common Open Source Terms

Issues: Reported Suggestions/Bugs or the project

Commit: A change in the files of the code

Pull Request: A request to accept a small collection of commits by a contributor

Tags: A collection of commits, something like a release

Hacktoberfest: A month-long festival in October, where people contribute 4 PRs to open source and receive swag t-shirts

## Basic Git Commands

- `git init`: Create a new git repo
- `git clone <repo>`: Clone a remote repository to your local machine
- `git add <files>`: Mark some changes for committing
- `git commit -m "<message>"`: Commit the changes marked in `git add`
- `git push`: Send the changes to a remote host
- `git pull`: Retrieve the latest changes from a remote host

## Where do I start?

**EddieHub an Open Source community aimed at encouraging and promoting communication, best practices and technical expertise in an inclusive and welcoming environment** is what I recommend you, created by the lord of open source, @eddiejaoude.

EddieHub has great people like @kaiwalyakoparkar, @nhcarrigan and @vyvyvi. 

Who will help you step up in your open-source journey at every step!

Learn more about EddieHub: https://www.eddiehub.org/

If you ever need any help. Feel free to ping me, ie Krish Gupta#6241 on EddieHub's discord: http://discord.eddiehub.org

## Open Source Symposium

> The crown jewel of our festivities this month is the LIVE Hashnode Open Source Symposium, a live online conference that takes place on Thursday, October 14.
-- Hashnode

Awesome people like @bdougieyo are gonna be there, so **miss it at your own risk**.

The event is going to have really interesting workshops like **Making an Impact as an OSS Developer**, **How to make your content searchable** and **How to Contribute to Open Source as a Newbie without Annoying the Maintainers**

Set the reminder here: https://www.youtube.com/watch?v=5VvLnUeYzwM

## Projects to make your first contribution!

- https://github.com/web3community/devprotocol.xyz by the web3community
- https://github.com/EddieHubCommunity/LinkFree by the EddieHubCommunity
- https://github.com/kaiwalyakoparkar/classroom-monitor-bot
- https://github.com/appwrite/appwrite by Appwrite.io
- https://github.com/web3community/web3community.github.io by the web3community