Video Summary and Transcription
Welcome to the best talk of React Summit USA. This talk is about three factors that block contributions to open source projects. Application is an open source dev tool platform that eliminates repetitive tasks in creating NodeJS backends, increasing developer productivity. I will discuss the challenges faced by first-time contributors and how to overcome them. If you want to contribute for the first time, we welcome you. Being proactive and engaging with the community can attract long-term contributors.
1. Introduction to Open Source Contributions
Welcome to the best talk of React Summit USA. This talk is about three factors that block contributions to open source projects. We want valuable contributions from the community. Connect with me on LinkedIn and Twitter. I have helped hundreds of developers contribute to open source.
Good morning, good afternoon, and good evening and welcome to the best talk of React Summit USA. And as you can see, this talk is going to be about three factors that are blocking contributions to your open source projects.
So we all have one side project that we want to work on, and we may want to make it open source. We are working in companies that have open source products or open source projects that we want to grow, and the most important part of growing an open source project is the support from the community. We want valuable contributions from the community to our open source projects. We want as many as contributors contribute to our project and make it better. There are many things that blocks their way to contribute to the very first time to your projects. And this talk is going to be all about those three blockers and how you make your project a better path for the first time for them.
So, on a side note if you want to connect to me here is a QR code. You can scan it and just connect to me. I'd love to connect to you. And so who am I? Hey everyone I am Saurav Jain. I am from capital of India, New Delhi. I am working as a community manager for the last two years at an open source DevTools start up called Amplication. I'll tell you a little bit more about Amplication in the next slide. I consider myself as an open source evangelist. I am in this field from the last five years and I have helped hundreds of developers to contribute to the world of open source for the very first time. And this is something that makes me happy. I visit all over the parts of the world, speak about open source, help contributors to contribute to open source projects. And I'm very active in social media channels as well. So if you're not following me, you are missing something. So these are my handles, S-A-U-A-I-N, on both LinkedIn and Twitter, you can give me a follow there. I love to travel. I love to code. I love to post content on Twitter. So I post usually content revolving around open source and communities on Twitter. So if you are interested, please check it out. And yeah, application. So this slide is not for giving an intro about the application, but I want you to know that how I started when I started working at an open source company and how small it was. So just a little introduction.
2. Application's Growth and Impact
Application is an open source dev tool platform that eliminates repetitive tasks in creating NodeJS backends, increasing developer productivity. It started as a small tool with a community of 1000 members and 30 contributors, but now has over 35000 developers and 12000 stars. It continues to grow exponentially.
Application is an open source dev tool platform. It's a code generator which generates the boilerplate code for you and it eliminates the whole repetitive task that developer teams has to do when they are creating NodeJS, NodeJS backends. So it makes the developer life easy by eliminating the repetitive task and increase the productivity. But when I joined application, it was a very small tool. So we have a community of hardly 1000 members. We have only 30 contributors on our open source project and the project was pretty small. So I started at that time. So if you are someone who is working on a personal project and the project is very small, don't worry. I too started in that way and now we have a community of 35000 plus developers across all platforms. We have 12000 stars nearly right now, more than 300 contributors if I be honest on every repository of application and the community you can see there. So we grow exponentially and you can too.
3. First-Time Contributor Challenges and Solutions
In this talk, I will discuss the challenges faced by first-time contributors and how to overcome them. The overwhelming codebase is a common blocker, but providing good first issues can help. These issues should focus on one package and one file, allowing contributors to understand and make small contributions. Other good first issues include UI/UX improvements, documentation fixes, bug fixes, and improving the Read Me. Documentation issues are particularly helpful for new contributors.
In this talk I am mostly going to talk about the contributor parts, not the everything because it's a lightning talk. So let's start! So I will start this talk by telling you about the point of view of a first time contributor. So either a contributor who's contributed the first time is a beginner to the tech world or to the open source world or they are visiting your project repository for the very first time. And in both cases it is tough to understand the code. It is tough for them to understand what is going on, they try to read documentation, they join a community, ask community some question, interact with them and they use the product.
And when they use this they have some blocker. So for example Harji Forever was trying to contribute to an issue in Amplication and he got some blocker. So what are those blockers exactly which block these first time contributors to contribute to your project? So the first one is getting overwhelm by code. Yes, like this. So everyone will relate to this when you contribute to the very first time to any open source project, the code base is very overwhelming. So I personally don't know which file is doing what thing. There are dozens of packages, hundreds of file and I don't know which one is doing what. So for example if you go to github.com slash amplication slash amplication you will see the whole code base how we are generating the back end. And I'm working on amplication and it's tough for me even if I'm a very, if I'm thinking from a very beginner point of view to understand which package is doing what. There are dozens of package, each package has hundreds of files and I don't know what is, which thing is doing what.
So as a, as a first step, as a maintainer, you need to understand how to overcome this and the best way to overcome this blocker is good first issues. Yes, so I recommend you should have as many as open, good first issues open on your repository as you can. So what I consider to be a good first issue is a code issue that can be solved only in one file. So I agree there are dozens of, dozens of packages. You cannot teach everything in starting. So let's start with one package and one file and a code issue that can be solved only in that file. So if a contributor tries to contribute, tries to pick that issue, they will go to that particular issue, solve this and learn about a particular package of your repository and they will understand what is going on in that package and it will be a gap. It will add as a catalyst. It will be the beginning of their lot of contributions to your project because they understand one thing. Then they will pick another issue which will make them understand about the other package and they will understand about that. So like this, they will understand more and more packages and eventually they will be a very active contributor in your repository. Other issues that I consider good first issue is UI. UX issues, documentation issues, small bug fixes, typos and making Read Me better is always welcome for the maintainers. In the documentation issue, I say that I have personal experience that when there is an issue in documentation, you ask community to fix it, they read documents, they read what is going with your product, how to use it and they learn about your product and they become a user. So documentation issues are very helpful for the first time contributions and good first issues helps to contribute.
4. Contributor Support and Proactive Maintenance
If you want to contribute for the first time, we welcome you. As a maintainer, be proactive in maintaining status updates from contributors. Help them overcome any problems they face, even if it's a good issue. Schedule meetings with your engineering team to assist contributors. By being proactive, you can attract new contributors and build trust in the community.
Yeah, it's as simple as that. So if you go to github.com slash Amplication slash Amplication and you will go to the issues section, you will see at any moment of time, we have 20 to 30 good first issues open in our repository for the contributor who want to contribute to our repository anytime. So if you want to contribute for the very first time, we welcome you. So please come and contribute to our repository. You are more than welcome.
After the second second thing, which is a very big problem is for example, yes, the meme is very funny. The for the example, let's assume you have some contributor from a repository pick them good first issue start working on it and they got some error. Installations are not easy. Maybe some get error or maybe some error with your product. We don't know. And these they start they just stopped working on it because they don't know what to do.
And as a maintainer, you have to be proactive. You have to maintain status updates from the contributors working on your issues. If they are having some problem or not, how you can help them. You have to ask this item time to time at a certain period of time. I don't know after a week, after two weeks. According to the issue. And if they are having some problem, you have to help them even if it is a good issue because they are contributing for the first time. You have to feed them. You have to make them learn about your project and if required, you can also schedule a meet with your engineering team and they will learn from the engineering team itself. So it's never it never harms and it creates a trust in the community and more and more community members contribute to your project. And that's how it works.
For example, I was a contributor named Hajj. Asked me to assign an issue. I assigned him an issue three weeks ago and I usually maintain status updates very proactively. He forgot that he has to work on this issue. I maintain status update and ask if there's any update on the task he's working on. And in a day, he made a PR because that's how you get a new contributor by just being proactive. And on the other hand, on the right side of the screen, you can see Sameet got an error while working on an issue and I asked one of the engineers of Amplication to help him. And after I asked them to ask him to help him, they scheduled a meet and it was, the issue was solved.
5. Reward and Recognition for Contributors
Being proactive and engaging with the community can attract long-term contributors. Celebrate every open source contribution and show appreciation. Provide rewards like stickers, badges, t-shirts, or recognition on social media. This approach has helped Amplication grow from zero to over 350 contributors in a year. Join our discord community and give Amplication a chance by starring our GitHub repository.
And now Sameet and Harsh both are very active contributors of Amplication. So just by being proactive and asking community, you can gain contributors and which are active for a very long time.
And the last but not least is the reward and recognition. So, I personally believe that and I always say this, that every open source contribution should be celebrated. Someone is dedicating their time to your project, someone is working for your project without asking anything. So if they are kind enough to contribute to your project, you have to be kind enough that you can give them a small coupon of appreciation. If you can afford, I will always prefer that you can give some sticker sheet, you can give some a badge, you can give them a t-shirt or cap, according whatever you can afford and your company can give.
Otherwise, if there is a side project, you don't have a budget, you can always give them some recognition on the social media channels. So a post that will mention that this contributor helped us to bring this value to our project and it helped the open source project a lot. We grew and the community is enjoying the new feature, the new value that the contributor provided. It means a lot for the community. Then community knows that the maintainers of this project values community contribution, they are kind enough, they are kind enough to express their gratitude toward the community and more and more community members get motivated through this. They look forward that we will also get these things, we will also get these rewards or recognition on social media channels. It means a lot. And it works. It works. So whenever I invite first-timers to the Amplication repository, I do a thank you post always. I give them a t-shirt and a sticker sheet which they appreciate a lot. And this helps us bring more and more contributors to our project. So in a year, you can see from zero to more than 200 and if I count all repositories, it is more than 350 contributors right now in Amplication, which is very big. So this works. Yes. If you want to contribute to the open-source world for the very first time, I invite you to join our discord community and if you like my talk and if you want to give Amplication a chance, you can give us a star on GitHub, you can look all the code based VR and you can contribute to our repository. You are more than welcome. And that's all. Thank you so much.
Comments