The beginning 🕑
Since I started writing code 🚶 I learned open source tools that made my life easier so that I didn’t need to learn every specific implementation technique 📚 for every special feature I wanted to create 🙇.
After a while, I realised the open source projects live in Github ❤️ and are relatively open for the users to understand how they work and also to user input and contributions from code to documentation assistance.
It seemed too intimidating to contribute directly 🙉 and took some learning and lots of context in order to contribute to them 🙈, but back then I didn’t even think I was good enough to add my shitty code to the Olympus mountain ⛰of these great projects 💪.
Since I started learning new different tools 🤓 like React.js, express and socket.io, I made some boilerplates and put them on Github so that they would be public and I could use them in the future too.. I didn’t know this would be the start of my contribution to open source.
After I got some experience 🏋
After a few years of working as a Front-End developer, I joined a company that asked me to build a react app for Web, IOS and Android. After a bit of research 🔍, I found that a library called react-native-web was the best choice.
While searching, I found a few boilerplate projects that I could learn from, since the library itself didn’t have such advanced documentation or examples of how to integrate certain things. Even more, I barely found Stack Overflow answers or questions around the topic 😮. I was surprised that most of the good knowledge I found, for edge cases issues, I found from Github issues on the project repository 🎁.
I got the feeling that there were many areas to contribute 😻 and I even tried to figure out 🤔 a way to contribute directly to the project but didn’t have much success in solving a few bugs that were issues in the project’s repo 😣.
I wasn’t sure how I could contribute to this library (which felt more like a movement to me 😇 🏩 with a common goal), until I read Ken Wheeler’s “guide to Open source” ❤️ https://medium.com/codezillas/a-bitter-guide-to-open-source-a8e3b6a3c1c4
It is a good read with good tips ✅ about how to create your own project and contribute to the community 👪 from a well experienced member of the open source community.
My own project 👶
After I had my first boilerplate with the react-native-web, I went to my boss (Richard Abendroth) and asked to open source it (meaning to make the repo public).
He loved the idea and pushed me to pursue it ❤️. After a few weeks I published it and a few months later I wrote my first Medium article about it and my journey of discovery in this new area.
I shared the article on LinkedIn, Twitter and many Facebook groups 👍 in order to get some feedback. I was shocked to see how many people were reading and how many people visited and liked ⭐️ my project. I would show my friends and colleagues the numbers every few weeks 🤳.
I started working on a talk for a local meetup about my experience and basically about the article topic. I took the article I wrote, removed the parts I didn’t want to repeat and added some verbal topics that would be better and started putting Gifs and slides of code for my talk 📽.
After I had the slides and the talk down, I decided I’m ready and submitted a request for a local reactjs (related to the topic) meetup. After a week they replied and I had the spot! 🙊 The talk went great and I really enjoyed the experience and I wanted to do more for the community and contribute more after I got such positive feedback all around 😊.
After a while I even got some issues opened up on my project from people all around the world 🌐 that were using my project. I felt honoured that other developers were using my code to work and to do their own projects. This gave me even more ambition to do more and find a better solutions for the community.
Aha moments 💡
As a Front-End developer, I was used to have cool CLI tools 😎 that would start my projects up, as the trend goes in recent years. I felt this was missing in the react-native-web community and decided to build one❗️
I went over a few great CLI tools that were already well established and that I used in the past. I learned from them and created my own project for the CLI tool 👶.
I published it to npm and in the social networks 👍 again and the feedback was even better 🌟. I was thrilled and felt a need to reply to every issue right away, as I felt honoured that people were using my code and that I should answer and help people with the problems they encountered. Even though most times it would be with other libraries and not my own code 😅.
After your idea becomes reality 😱
As the time went by, more and more Github issues were opened and even one Pull request 😍 to add some documentation. More feature requests, and also a bit more pressure to get things done quicker 😓. But I felt it was a success 😁 and I finally did something good that people liked to use. Now just maintaining it, was left to be done.
Maintaining sounds bad 😰, but this meant for me to find out about other people from the community that requested features I didn’t even think about. To discuss the benefits of each suggestion and realize what would bring more value to the project. 🤔
After my second big release of the project, I received such compliments 👌 and even more downloads 📈 that I felt I should share my experience of doing this project and to push more people to contribute and go on this journey since open source helps us all the time.
Hope this gave you something, as my journey gave me a lot personally 🤗