Cover image for 8 Steps to Get 100 Stars on GitHub

8 Steps to Get 100 Stars on GitHub

nastyox1 profile image nastyox Updated on ・4 min read

We should start off with proof that this works. Here's a screenshot of the recent viewer analytics for my GitHub repo, which has just started to take off:

GitHub viewer analytics

It's clear from this chart that I spent a little while trying to get stars in ways that flat-out don't work before I found the ways that do. I'm here to help you cut through the crap and focus on the methods that work.

1. Create a READ-ME with a pretty top section

Your READ-ME file is like your repo’s homepage. A good percentage of people will star your project just because it looks good, and not all users will scroll down past the top of your READ-ME, so make the top part as pretty as possible. Here’s how to create a READ-ME, and here’s a place to practice your markdown if needed. A recipe for success is a well-designed logo with a tagline underneath followed by shields and then a colorful splash image. Here's what I did with my repo; it's animated, so you can click here if you care to see it live:

Rando.js READ-ME

2. Be concise

People have incredibly short attention spans. Cut all the excess wording out of your READ-ME and get down to brass tacks. If possible, show the user how to use your project in a quick gif. Here’s how to record your screen on a Mac and PC. Here’s the best online video to gif converter I’ve found.

3. Choose an open license

People don’t like when you’re selling them something. If possible, create a license for your repo that opens it up for free use. I chose the “Unlicense License”. This will be featured next to your READ-ME, and people will see it.

4. Have stars

It’s weird, but people are more willing to star your project if they see that others have already done so. Ask your friends to star your project to get the ball rolling. Do not create fake GitHub accounts to star your own project. GitHub will catch you after about 4 accounts, guaranteed.

5. Upload an eye-catching social card

When people share a link to your GitHub repo, it’ll be accompanied by whatever image you choose for your social card. Make it colorful enough to pop off the screen and provocative enough to be worth a click. Here’s how to upload one.

Rando.js GitHub social card

6. Advertise

There are a lot of platforms to post your project to for free. The ones that have worked best for my JavaScript-based repo (in order) are r/javascript and r/webdev on Reddit, Cooperpress- which runs the the biggest coding email newsletters (contact here), Dev.to, Hada News, Echo JS, Hacker News, Product Hunt, Twitter, Facebook, and LinkedIn. Lobsters is an invitation-only community that I don't have an in with yet, but you can post there as well if you do. If your repo is JavaScript-based like mine, you can also post to JavaScripting once you reach 80 stars. Even interacting with other users' repos on GitHub through contributions/stars/follows can lead to visits to your own repo. Don't overdo it with GitHub interactions though; you'll get flagged or banned or spam.

7. Engage in developer communities

Once you advertise on these communities, connect with people on them. They won’t find you unless you give them a reason to care that you exist. Find articles on Dev.to you like and actually like them/leave comments. Star projects on GitHub and contribute to other projects. Like and retweet people on Twitter.

8. Respond to feedback

People will respond to your posts on these communities with advice. Tell them that you’ve heard them and actually change your project to fit what the public wants. They’re explicitly telling you how to make the project worth starring, so listen.

And a bonus...

You’re also welcome to leave your project in the comments here for others to check out, but please don’t just drop a spammy-looking link. Include your repo’s title and description with the link so people can get a sense of it at a glance. Something like "Rando.js is a micro-library that simplifies and secures randomness in JavaScript" is perfect. I’ll check them out too!

Posted on by:


Editor guide

Nice post. The first 100 stars are most certainly the most important 100, and while stars and attention are perhaps a shallow indication of true value, we are humans and we need signals like this sometimes. 😄


Motivation is very important, especially for FOSS contributors as other kinds of motivations like salary or pension aren't available. More GitHub social indicators means they'll be more motivated to solve bugs and issues in the project. It also means more visibility of that project to other organisations who support/donate based on social indicators.


Great advice, I'm going to add a nice logo to js-coroutines as it's currently looking rather sad! I made an effort with the website but less so on the GitHub. Can't seem to get JavaScript Weekly interested sadly.


Very useful. Have a star!


Very cool! You've got one of those projects that's useful enough to get stars no matter what. It looks great!


Really well done. Nice work!


Wow, that's really great! I'd love to know how you made this.:)


Very cool. I gave a star too! This post earns you stars too lol.

Can I steal a question? I thought that async functions don’t block main threads... so anything running inside of the async function shouldn’t too?


Hey Calvin thanks!

So async functions just wait for each of the operations and then block the main thread again. I wrote the following that shows how js-coroutines works and why it makes a big difference.


Awesome article. Am really looking forward to promoting fractio, an eel based tool for calculating document statistics such as character, word and sentence count. It also calculates estimated reading time and assigns the document a readability score.


Really cool to see someone actually using eel! I think screenshots in the README would help increase engagement


Thank you ,
I find eel very convenient, unlike electron which I was using prior to eel.

I will be updating the README soon.


Do not Crete fake GitHub accounts to star your own project. GitHub will catch you, GUARANTEED.


Nice post. My personal record for star is 3(including me) 😑


Looks like it's up to 5 now 😉
My python projects get no stars but like 100 daily downloads for some reason.


Yeah I've had that, people come and clone and leave you nothing in return.


At least you have the traffic going on.


My record is 11 so far :).


I would like feedback to ysv. This is a command line program which reads CSV data from stdin and accepts a configuration file name as a command line argument. Its job is to create a new CSV file based on that configuration. Example configuration:

version: 1
    - input: year
    - input: make
    - uppercase
    - replace:
    - input: model
    - uppercase

The purpose is to simplify ETL jobs and clean data before it gets into a database. Stage of development is very early, as is my level of understanding Rust.

I have seen that a lot of tedious work has to be done to clean up data, standardize column names and formats, and this tool aims to resolve that pain using a simple DSL.


Such an amazing post. I followed each and every step and honestly my project readme looks more simpler and cooler than ever. Have a look

GitHub logo rahuldkjain / minimal-portfolio

💪 A clean, minimal, responsive, and customizable portfolio template to showcase skills, experience, achievements, and favorites (movies & TVs).

Personal Porfolio for developers

💪 Awesome Personal Portfolio

The minimal, responsive and easily customisable portfolio for developers.

portfolio for software developer portfolio for software developer portfolio for software developer portfolio for software developer

portfolio for developers


🎯 Home (Introduction, Skills, Contact me)

🎯 Work (Internships, Projects, Miscellaneous Projects)

🎯 Achievements And Certifications

🎯 Favourites (Movies, TV/ Web Shows)

🚀 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

You'll need Git and Node.js (which comes with npm) installed on your computer.

node@v10.16.0 or higher
npm@6.9.0 or higher
git@2.17.1 or higher

🔧 How To Use

From your command line, clone and run minimal-portfolio:

# Clone this repository
$ git clone https://github.com/rahuldkjain/minimal-portfolio.git
# Go into the repository
$ cd minimal-portfolio
# Install dependencies
$ npm install
# Run 
$ npm run dev

🛠️ Customize

If you like the portfolio and want to use it to create your own, please refer customization manual.

🧑‍💻 Technologies used


It looks awesome. Nice work! Remember, the next step is networking on various platforms so people can see it and give you feedback about the functionality.


Yeah will definitely do that. Thanks


How did you do it, It looks so great!


That gif was developed using gsap animation library.

Wow!!!! Thank you very much for sharing such a good way. It is admirable that you can share such amazing tools. Can you share your experience or examples, I appreciate it.


The trouble I have is that as a developer first and a designer second (if at all) I have trouble making nice graphics to promote my stuff (kudos to you by the way, the rando.js graphics are gorgeous).
I recently made a website Mix Capsule (auto-generate time-capsule playlists on Spotify) and added as much styling/branding as I could to the website and the repo but am struggling to make it as nice as some projects I see here. I'm wondering if people have general tips for programmers turned designers or anything specific to my case?


Thank you! If creativity is the problem, I would suggest finding styles you like on a mix of other sites and basically copying them while tweaking things to match your own brand. At that point, it's just a matter of being good enough with CSS and whatever graphic software you use to get the job done. It's really nice if you can find a designer to work with so you only have to worry about the technical application, but you can scrape by without one.


Thanks for the advice! I'll poke around and see what I can find for inspiration.

Something like this (not mobile responsive)? I could help out more with the frontend if you'd like it or not if you prefer to do things yourself! Seemed like a fun thing for my free time.

Wow that's quite the makeover thanks! I especially like the svg waves and animated logo, definitely not things I would have thought to do myself. I think I can take it from here, but I'll certainly use yours as inspiration if you don't mind.

Good luck with it; I'll check back at a later date to see how the project's growing!


Nice tips! Let me promote some of my projects (and I wish I can reach more people with my works that I work really hard to make):

  • obsidian: A Rust web framework which we aim to make it more developer-friendly (as people always say Rust is hard to learn). It is still on an early stage, and we are discussing about how do we make it become a productivity tool for developers.
  • aion: A friendly Rust utility crate for duration and datetime.
// It allows you to write the duration and datetime like this
2.days(); // Duration for 2 days
2.seconds(); // Duration for 2 seconds
2.hours().from_now(); // Datetime for 2 hours from now
7.days().ago(); // Datetime for 1 week ago
1.weeks().ago(); // Datetime for 1 week ago

This is one great DSL to express datetime values! Looks very nice and readable.


Thanks! This is inspired by Ruby on Rails where in Rails you only need to write 1.day.ago (without parenthesis). It is even english-ish.


Trex is a Package management for deno but maintaining the deno philosophy. packages are cached and only one import_map.json file is generated.

Btw awesome post!


Nice post, I will try it out!
Also, npm-package-deployer is a NPM package that helps you release versions of your NPM packages. You can also automate the process via GitHub Actions!
Feel free to read my post about it here if you're interested.


Repo looks awesome


Thanks! I made some changes to it according to this cool post! i've been developing projects here and there and I really wanted to make them more visible!
I'll be adding more gifs and so to it to make it even cooler!
Thanks a lot for this awesome post!!


Thanks for the post! Starred your repo as many in the comments 😄. I like the shadow image on your readme. Looks better than the regular shadow. Which tool do you use to create the moving shapes in your gif logo?

Find a python webhook repo for people who want to create fb messenger bots below:
Link to repo


Thanks! If you look at the rando.js website and inspect the shape shifter at the top of the page, you'll see how I coded it with HTML, CSS, JavaScript, and jQuery. From there, I just recorded it using QuickTime on my mac, and used the video to gif converter I mentioned in this article. I used the same method for the demo gif! The code environment in that gif isn't even functional. Just for looks!


Thanks for the tip. Will check the source bits it out.


Really good and informative read! Thanks for sharing.


Why isn't #1 "make something that people want to use"?


My goal with this article is to help people improve their repos, and if they can't figure that one out on their own, I don't know if I could help them. I'd call that #0 on the list. Certainly the most important. Also kind of ties in with #8.


Omg the amount of effort... I felt like I went back in time and had to chase my wife all over again....
Not.Js - "All-in-one" type checking, validation, error handling and messaging.
Not.Js - "All-in-one" type checking, validation, error handling and messaging.


Looks great!


Informative post. I always envy the repo which has a lot of stars and it was very hard for me to go beyond 5. I will try to apply these tips for my next opensource tool and post the result here. Thank you @nastyox


This is really good advice. Especially for people starting out with Github when a lot of questions come to mind and block you from actually taking part or doing something because you think "is this the right way to do it?".

The best way is to just do it then iterate as you go along and i think posts like this go a long way to helping people do that.



Nice article I've added two of my projects to JavaScripting. sysend.js library that allow to send messages between open tabs or windows including cross domain. and jQuery Terminal. I have also another project I would like to share which is LIPS Scheme based language written in JavaScript. I need to add logo to master branch README as well, it will be awhile until I'll made 1.0 version that I'm working on in devel branch.


Nice write-up. Congrats on your library! I think first and foremost is to create something valuable, something you want to use yourself is a good starting point, and like you discussed I think a lot of people fail to polish up the presentation of their work to make it more appealing


Hey @nastyox, followed all your guidelines and getting some traction already for GitGuardian's shield: github.com/GitGuardian/gg-shield (scan your files and detect potential secrets or issues in your code). Thanks!


Looks great! The table of contents is a great touch to make so much necessary info feel manageable. Nice clean the logo as well!


SyncPaint is a web app for group drawing. Draw together with other people in real time.

Great tips :)!


This is an amazing article♥️. I would like to advertise React Native WiFi & Hotspot Wizard which is a react native library I am working on to configure WiFi & Hotspot settings programmatically.


I feel obliged to point everyone to Goodhart's law.

"When a measure becomes a target, it ceases to be a good measure."


Totally agree with that, seems like recently, writing code becoming more and more like Instagram... :(


Lets just hope pretty tops on github will stay SFW ;-)


"Assassin is a decentralized database that hires web workers to kill slow JavaScript."

Does that make sense? How can I make it clearer? I feel like not too many people understand the power of web workers.

GitHub logo genderev / assassin

Assassin is a decentralized database that uses background threads to kill slow JavaScript.


GitHub license GitHub license1 GitHub license GitHub license2 GitHub license31 GitHub license3 GitHub license4 GitHudk



Why do we need a new database?

  • No existing decentralized databases are compatible with web workers.

What are web workers?

  • You can outsource JavaScript to web workers.
  • Web workers allow you to run multi-threaded JavaScript.
  • When you run JavaScript in parallel to the main thread, the main thread is free to respond to user input.

Can you explain web workers with a picture?

You can see in the diagram that without web workers (that's the "before" part of the picture), the main thread has to finish processing all JavaScript before responding to user input. With the use of web workers (that's the "after" part of the picture), the main thread can send JavaScript to web workers and then focus on updating the UI.

web worker diagram

Features 💥

💫  Lightweight


I think that for someone that doesn't know what a web worker is already, saying "Assassin is a decentralized database that uses background threads to kill slow JavaScript" would make more sense right off the bat. Very cool project!


Do you mind if I make that my repo description?

Not at all!


Agreed. I remember I was so happy to have reached my first 50 stars and have not move far enough as I am busy maturing the tool than running a campaign. But now, it seems I had bit more time :) Appreciate your stars guys! :D

I just made some of your suggestions on my project yuniql, thanks for the tips! yuniql.io is a database schema versioning and migration tool for postgresql, sqlserver and others. Hope you find this useful in your future projects.


Awesome points! Most of them I'm already trying to realize, mostly depends on how much time I can spend on a project. I also like badges in a Readme, to have quick information about the repo at first glance.

Here is one of my own projects:

GitHub logo devmount / you-can-quit

A tool to support your progress in quitting whatever your bad habit is.


Honestly for me it's just the point on a concise intro and example with no fluff.
I don't care about the pretty side as I am most likely there to consume a package or cannibalise some snippets!

A logo or a couple of images are OK, but I personally dislike OTT readme's with tons of large images which mean I have to scroll all over the place to tie bits together!


Thank you!
I have created a library Neconfig - configuration module for Nestjs.
There is an issue Required to correct grammatical errors in the README.

It would be great if someone can help :)


All things said in the article are really helpful, especially the community and newsletter links. Thanks for the article. I did the same and got more than 30 stars.

By the way, here's my project

GitHub logo sarsamurmu / reboost

A super fast dev server for rapid web development


Reboost is a super fast dev server for rapid web development.

CircleCI npm maintained with lerna license


Reboost is in early development, and some things may change/break before we hit version 1.0


Reboost is intended to use only on development, for production you've to bundle up your files by yourself using bundlers like Webpack, Rollup, etc

What it does

When developing a web app, as your number of modules increases your compile-time slows down, it's a big problem, it takes a lot of precious time which you could have used to develop your app. Since ES2015 (aka ES6) modules are supported natively by browsers. If you can connect (or you can say serve) them up correctly, it will work on browsers without the need for bundling. Here, Reboost does that for you - the serving part. So you can develop your app faster.


  • No bundling. So the server start time is fast

Helpful post!

Github Resume Generator is a place where you can generate your very personalized Github profile overview and save it. Visit the repository here.


Great post! I'll definitely be following some of your advice.

A project I've been working on lately is meme-type, a translator for internet speak.

For example, entering "include your repo link" with the "CLAPS 👏 AND 👏 ALL 👏 CAPS" option would return "INCLUDE 👏 YOUR 👏 REPO 👏 LINK"