⭐️ How did my open source project get over 1k stars on GitHub?

Adrian Pietrzak
Adrian Pietrzak

Nov 23, 2021

3 min read

Thumbnail

In 2019, I started working on my first larger software application than “todo list”. I was looking for a job as a software developer this year and I needed to distinguish myself from other developers.

I made a banking system where you could make transfers (not real money).

I’ve been looking for help from other developers to find out if my JavaScript code is good enough. By coincidence, my application has become one of the most popular open source projects and has received over 1.2k stars up to date.

Note: You can find a repository with a description of the functionality for this project here: https://github.com/pietrzakadrian/bank

In this article, I’ll show you a few steps on how I was able to do it.


1. Self-describing repository name

First, let’s talk about the name of the repository. This is important because it is also included in the repository link that you can post to your resume. The name should be short and self-describing.

✅ Valid example: “ticket-system”, “notice-board”, “bank”
❌ Bad example: “MyApp30–1”, “CourseApp1”, “myprogram”

The name should be named in English.


2. Short and understandable description of the repository

Description in repositories are displayed after entering our GitHub profile. This is our developer’s business card. As with the repository name, the description should look simple and professional.

✅ Valid example: “Full Stack Web Application similar to financial software that is used in banking institutions | React.js and Node.js”
❌ Bad example: “基于百度地图 JavaScript API 封装的 React 组件库”

The description should be named in English.


3. Professional looking README.md file

The contents of the README.md file are displayed on the repository home page. You may think that this format does not offer many possibilities.

Nothing could be more wrong. See the awesome-readme repository.
You can do a lot with this format, just like with HTML and CSS.

Note: all my blog posts are written in .md format files and then compiled to html.

README.md in the repository should list the programming languages and frameworks used. It should also contain a description of the functionalities implemented in the program.

This file should look like a small software documentation.


4. Clean program code

The source code is the most important in an open source project. It should be exemplary, written in accordance with the principles of SOLID, KISS and DRY.

  • Such code should not have commented lines of code.
  • The code should be very well described so that every developer can understand it.
  • Code should be working after compilation!

You can put an external link to each repository. Here you should put a link to documentation of the project, or a working live version. This allows others to check your program without running it locally.

This is very important when you are involved in recruiting for a job,
because this saves a lot of time for other people to check your application.


6. Distribution ource

There are a lot of open source projects on GitHub and the “good code will defend itself” rule does not work here. You need a distribution source other than GitHub to reach other developers around the world.

What is the distribution source?

  • posting a link to the repository on reddit,
  • sharing a link to the repository on facebook groups for developers,
  • being active in developer chat rooms, eg. Slack, Discord.

Just write something like:

Hi, I wrote such a nice open source project. It does an X and Y function. Can you check if it’s okay? Link to repository: https://github.com/…

Thanks to this message, you will start discussions about your project and your post will become viral.
This will increase interest in your project and get people to start giving stars.


In this article, I have introduced you to all the tools I use in my work as a full-stack software engineer.

You can also find this article on medium.com where I share my solutions to the problems I encountered during my software engineer career.


Related articles