My way into open source ๐Ÿ‘ป๐ŸŽธ

I want to share with you my journey to open source in the JavaScript programming community.

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, 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โ€ โค๏ธ

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 ๐Ÿค—

One of my latest projects is to help people get started with HTML, CSS and JavaScript quickly. Please share if you know someone who would benefit from it