Introduction

In this post, I'll explain how I made one of the top open source projects in 2018 and what you can do to achieve the same in 2019.

The Evening Before Reaching GitHub Stardom

These were my thoughts before I open sourced my project:

"Is this project really going to get some attention? Is it a meaningful project for the developer community? Well, if it helps at least 1 person, I did a good job".

I posted the project on Reddit, some Slack communities, and went to sleep.

I woke up the next morning, the project got 2k stars on GitHub in less than 24 hours.

The community answered my questions.

Open Source Matters

When you're getting started with programming as a self-taught developer as I am, it's always hard to learn some concepts at first and understand deeply what they mean. One of the biggest problems that self-taught developers face at the beginning of their career is guidance. They don't know exactly how to ask questions and who to ask, so they usually get lost too easily.

At first, it might seem to you that everybody is talking about open source all the time, saying that you should contribute to it, but somehow you still don't know what open source is and why it should matter to you as a developer. Then, this term "open source" starts to get more and more present in your daily life, as you get familiar with a lot of projects, a lot of developers and until you start to follow open source projects or contribute to them without even noticing it.

So, what is an open source project?

Open source project is a project that everyone can inspect, modify, enhance, etc. Its source code is available to anyone and you can use it for any purpose.

This is why we should pay attention when people start telling us to do open source projects.

As Roshan Jossey said in one of his blog posts:

The best way to level up your programming skills it to code more. The second best thing is to read others' code.

For us developers, working on open source projects is one of the crucial parts for speeding up our career development. This improves our way of thinking, coding, communicating with people, and after some time, you will notice that you improved the way you work in many ways.

Open source is one of the most important terms in programming because it improved the way we work so much that we couldn't imagine what we'd do without it. We have new features getting out every day, new frameworks, new technologies, new libraries, the number of projects getting out is pretty massive these days. That means more high-quality code, more support for frameworks and libraries, increased safety of our code, etc.

Without open source development we wouldn't be discussing things like "Should I use React or Vue", "Redux or MobX?", etc. Open source improved our world so much, made a lot of developers get really good at what they do, grown a lot of fantastic projects, and improved a lot of languages.

JavaScript is the most famous programming languages in the world. It's being used both on the back-end and front-end, so obviously the quantity of JavaScript open source code and the developers using it is huge.

Ideas, Ideas, and Ideas…

One of the mistakes that we always make when we're creating some open source project is that we always try to build a meaningful, famous, well-known project that will change the development world. But guess what? That's not for everybody, and you shouldn't think of it as a problem.

You don't need to be the next Dan Abramov, you don't need to build a really complex library, you don't need to build some mind-blowing, game-changer project, you don't need to write a ton of code to call your project an open source project. Some people think that they should invent something new, fantastic, something that would get them famous. Even if you're just responding to an issue in a repository, or making a simple edit in a README.md , you're contributing to open source and that's awesome!

Image Credit: HeadGum

An open source project is a project that solves a specific problem or improves a solution that is already there. That's all.

You can get ideas for open source projects everywhere on the internet, you can get ideas from Medium posts, Twitter threads, YouTube videos, Hashnode questions and stories, etc. The goal of an open source project is to improve the community or your skills and enable other people to read and improve as well.

Everybody wins in this story and that's why I decided to make my project open source and share it with other developers.

How I Made One of the Top Open Source Projects

My idea to build the 33 concepts that everybody developer should know came from an article written by Stephen Curtis. I read the article, and I thought "Well, maybe I could get together some links and post it in my GitHub, for future reference". But I wasn't really thinking of posting it so that everybody could see it, and not even thinking that it could help a lot of people. I was just getting together some links to future references that I could use for future interviews, or just learn and improve my knowledge.

Then, I started the repo, and ideas were getting more clear in my mind.

As I started collecting links to build the project, I started to think that it could really help some people who are just getting started with programming. Most of the beginners these days don't really know how to start, or they don't know about some concepts that are essential in the JavaScript world. That's why I think that the project got so much traction in such a short time.

I decided to cover one concept every day, so I searched a lot for the best articles and videos about the concept I was interested in on a given day. It took me about 1 month to get the whole project ready and done. I did it in a way I thought would be the best for beginners to get started with JavaScript and help them.

One of the secrets to making a good open source project is to always ask for opinions and feedback from other developers. You don't know if a developer is going to really use your project if you don't ask for feedback first. When I was making my project, I sent messages to a few friends of mine who are developers and asked for their opinions on what could be improved or changed.

This way, when I was finishing my project, I got a really well-explained and a solid project, that could really help developers to improve their JavaScript skills.

Trending

Then, after some time, I decided that my project was really ready to be published. I promoted it on Slack communities, I made Reddit posts, and wrote comments on YouTube, everywhere that I thought that it could reach the maximum of developers possible. Let's not forget about sharing it on Hashnode too 😀

Every day I worked on my repository, thinking that if it could really help at least one person that was getting started with JavaScript it would be a success. When I posted my project on Reddit, I realized I was wrong.

I didn't help only one person, but a thousand of them. My project was trending on Reddit, it was also trending on GitHub, and from day to day, my project started to gain stars and contributions from a lot of people. Also, I received messages from a lot of people around the world, asking me for help and thanking me for making it. One guy told me that with my project he landed a job as a web developer. That made me feel awesome, and it really paid off the time and research I invested into it.

As if it weren't enough, at the end of the year I was surprised when I saw that my project was considered to be one of the top open source projects of 2018 by GitHub!

And again, my project was trending on Reddit, but this time, it was bigger than before. A lot of people, not just only JavaScript developers, sent me a lot of messages and telling their stories, how they used the project and how it really helped them.

This project really changed my life, because through it I met a lot of developers, I started to write more articles, and I really learned what it means to be a part of the community. The way I talk, think, code, and get ideas improved so much since I started this project.

Community

Open source matters to everybody but has a lot more meaning to those who are starting to learn programming and really need guidance and help.

The JavaScript community has shown me that my project is indeed helpful to a lot of people who're just starting out. Of course, I couldn't do it without the help of the community, and a lot of developers gave me constructive feedback and contributed to my project.

At the time of writing this article, the project has 52 contributors, and it got translated to more than 13 languages all over the world! It's a really nice number, and this shows how the JavaScript community has been so welcoming to beginners and really engaged in open source. If you ask me, we have the best community in the world, with a lot of nice people that are always trying to support the beginners and mentoring them to become better developers.

I wrote this article because I wanted to tell everybody how I made this incredible project, and also send a huge "Thank you" card to everybody in the JavaScript community, everybody who contributed to it in various ways, opening issues, giving feedback about some concepts, etc.

Image Credit: Michael Bolton

If you're new to JavaScript, go to my project and give it a try, and even if you're not a beginner I recommend it to you too, relearning something is always good.

So, what's next?

Well, I've been working with a lot of different technologies these days such as GraphQL, MongoDB, TypeScript, so I'm always releasing some interesting projects that I'm working on on GitHub.

If you've been working on any project that you think that is really interesting for the community, please share it with us in the comments! Let's support each other and make the open source community grow more and more!

Here's my project 👇