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.
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.
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.
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.
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 😀
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!
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.
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.
Image Credit: Michael Bolton
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 👇
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.
And this is for the same feeling I learned to code, striving hard to build something meaningful in my life.
Great article. Really inspiring and nicely put together. Well done, sir :)