How Did GitHub Profile READMEs Become the Best? Find out.
GitHub Profile READMEs are essentially a snapshot of who you are. From creative profiles to interactive games, you can pretty much represent yourself.

I am a developer from Bangladesh.
Search for a command to run...
GitHub Profile READMEs are essentially a snapshot of who you are. From creative profiles to interactive games, you can pretty much represent yourself.

I am a developer from Bangladesh.
Thank you very much, bro. I heard about github. But don't know what it actually is. Thanks for sharing information.
Welcome๐
Wonderful! There are so many awesome tools to put on. One more I would recommend adding it GitHub README Streak Stats.
Rock Paper Scissors is a test of destiny to settle on all manner of topics. If it's washing dishes or ordering pizza. Rock Paper Scissors is also used as a form of an equal choice between two individuals. It's still the most rewarding toy to win a ga...

The blog has become the mainstream source to share information in modern times. You have the freedom of choice to share any information with your blog. More than 570 million blogs are on the internet, and 7 million blog posts are published every day....

Python is one of the languages that is witnessing incredible growth and popularity year by year. In 2017, Stack overflow calculated that python would beat all other programming languages by 2020 as it has become the fastest-growing programming langua...

With the blessing of the Internet, people can learn anything anytime, anywhere without any hassle. Programming Language is one of the examples. Nowadays, not only students but also general people learn programming language as hobbies or to make a car...

Mubin's Odyssey
14 posts
Aspiring Full Stack Developer | UI Designer | Technical Writer | Connect me on other social media kmhmubin
It takes just a glance, maybe three seconds, for someone to evaluate you when they see your profile or portfolio for the first time. In this short time, the other person views you based on your personality, creativity, taste, activities, and many more.
A person who has a relationship with technology might frequently visit a famous place called GitHub. A platform where more than 50 million people learn, share and work together to build software. It lets you and other work together on projects from anywhere and also contribute to the open-source projects.
With the introduction of Profile READMEs, GitHub is now a one-stop-shop for not only showing off your tech skills and coding prowess but also anything else you might want to share about yourself.
Think of it as a creative portfolio, personal website, and expressive canvas all rolled into one. Plus, all your code is there as well!
If you use GitHub to impress recruiters, friends, or anyone else coming across a GitHub profile, creating a profile README is the perfect way to stand out!
This article will show you how to create a badass one and make it stand out using some cool tricks and tools!
It's the first canvas anyone sees in a repository. README files typically include information about the project, and each repository should have one. How users can use the project and contribute to the project is some good content from READMEs.
GitHub Profile README can be used to inform people of more information about ourselves. You can show off your hobbies, your sense of humor, and many awesome personality traits. Itโs the best way to stand out from the rest of the Github community!
It also supports markdown, which means that we can add lots of fun stuff with HTML, emojis, GIFS, pictures, and many more.
๐ A sneak peek of my GitHub Profile README.
I'm assuming that you already have an account on GitHub. Creating GitHub Profile README is very simple, but you probably would not find it on your own.
kmhmubin/kmhmubin.

Fig: Creating GitHub Profile README
NOTE: As I have already created the repo hence it's showing โThe repo already exists.โ
Ensure your repository is Public and Initialize this repository with a README file and .gitignore file.
Thatโs it! GitHub does the rest of the work for you! A README.md
will automatically be generated in this special repository. Github renders that file at the top of your Github Profile, above your pinned repositories and activity.
Now clone your new repository; it will help us to edit and test the README locally as much as we want.
To clone the repository, click the Green Button called Code. It will give us a link to download the repository. Please copy the link because we need it later.

Fig: Copy your GitHub Profile repo link
We will use the GitKraken Git GUI tool. You can use the terminal if you want to. Now open the Git Kraken on your pc. Sign in to Git Kraken by using GitHub Account.

Fig: Clone the GitHub Profile repo

Fig: selecting your Profile repo
Go to the directory where you save your local version of the Profile repo. Here is an example of my repo directory.
Note: Make sure hidden items option enable

Fig: local profile repo
Here is the folder structure at a glance.
kmhmubin:.
| .gitignore
| GitHub-Profile-Cover.jpg
| LICENSE
| README.md
|
+---.github
| \---workflows
| blog-post-workflow.yml
| topFollowers.yml
| waka-readme.yml
|
+---assets
| dev.svg
| facebook.svg
| hashnode.svg
| instagram.svg
| linkedin.svg
| mubinsodyssey.svg
| twitter.svg
|
\---src
getTopFollowers.py
By default, when you clone your repo, it only contains 3 files or folder; those are .git, .gitignore, and README.md Except for those, you need to create 3 more folders.
getTopFollowers.py. This script allows you to show your top followers..yml or .yaml file extension.If you're new to YAML and want to learn more, see "Learn YAML in five minutes."
Commit your changes and push those files to your GitHub Repository.
Just as with a personal website, Profile READMEs are essentially a snapshot of who you are. The options are endless. From creative profiles to interactive games, you can pretty much represent yourself however you want!
Here I'm going to complete one step at a time and commit these changes. You can follow along with me. At first, open your README.md file in an editor like VS CODE or Sublime Text.
I would suggest adding a nice header to make it more personalized. You can include a custom cover photo. You can make a cover photo in canva with 1920 x 583 px resolution. Save your cover photos on your GitHub repo and copy the link. Here is an example code:


Fig: Adding a cover photo
I wanted to see if I could make my profile look a little bit of fun. So I added a live visitor counter to see how many people visit my GitHub Profile. I choose the Retro visitor counter cause I look good with my cover photo. Here's the example code:
<!-- retro visitor counter -->
<p align="center">
<img src="https://profile-counter.glitch.me/{user-name}/count.svg" />
</p>
Change the {user-name} to your username in the URL like this:
https : //profile-counter.glitch.me/songoku/count.svg
The preview will look like this. PS: count number starts with zero.

Fig: Adding retro visitor counter
To learn more about the Retro visitor counter by Ryan Lanciaux check out his article.
Sayin hi with emoji looks impressive, but if you add a cool gif, it looks more expressive. So I'm adding a hand waving gifs with my welcoming text.
<!-- welcome message -->
<h2>Hi there <img src="https://media.giphy.com/media/hvRJCLFzcasrR4ia7z/giphy.gif" width="25px"></h2>
<h3>Glad to see you here!</h3>
It's really looking more lively than a simple emoji.

Fig: Adding Hand waving Gifs
In this section, you can add a bit of you, who you are, what you are doing, or what you are learning. You can add fun facts, jokes, etc.
You should definitely include some contact information in your profile, whether itโs an email, Twitter handle, LinkedIn, or other social media. Whichever you chose to include, you might want to use icon links to make it easier for people to find/notice.
You can download free icons from Iconscout. If you need to edit any icons, you can do it by their icon editor. After downloading all the social icons, upload it to your GitHub repo. And copy all these links and add to your README. Here is an example
<!-- Connect with me -->
<h3 align="left">Connect with me:</h3>
<p align="left">
<a href="https://twitter.com/kmhmubin" target="blank"><img align="center" src="https://github.com/kmhmubin/kmhmubin/blob/master/assets/twitter.svg" alt="kmhmubin" height="30" width="30" /></a>
<a href="https://linkedin.com/in/kmhmubin" target="blank"><img align="center" src="https://github.com/kmhmubin/kmhmubin/blob/master/assets/linkedin.svg" alt="kmhmubin" height="30" width="30" /></a>
<a href="https://fb.com/kmhmubin" target="blank"><img align="center" src="https://github.com/kmhmubin/kmhmubin/blob/master/assets/facebook.svg" alt="kmhmubin" height="30" width="30" /></a>
<a href="https://instagram.com/kmhmubin" target="blank"><img align="center" src="https://github.com/kmhmubin/kmhmubin/blob/master/assets/instagram.svg" alt="kmhmubin" height="30" width="30" /></a>
<a href="https://hashnode.com/@kmhmubin" target="blank"><img align="center" src="https://github.com/kmhmubin/kmhmubin/blob/master/assets/hashnode.svg" alt="kmhmubin" height="30" width="30" /></a>
<a href="https://dev.to/kmhmubin" target="blank"><img align="center" src="https://github.com/kmhmubin/kmhmubin/blob/master/assets/dev.svg" alt="kmhmubin" height="30" width="30" /></a>
<a href="https://mubinsodyssey.com" target="blank"><img align="center" src="https://github.com/kmhmubin/kmhmubin/blob/master/assets/mubinsodyssey.svg" alt="mubinsodyssey" height="30" width="30" /></a>
</p>

Fig: Adding Social Links
This section shows which programming languages you are using and what tools are used every day. We will generate those icons from GitHub Profile Readme Generator or download all those programming languages icons all by yourself and upload them to your GitHub repo, which will take a long time can add shields.io badges. To add those icons, we are going to use shortcuts.๐
Copy all those links and add them to your readme like this.
<h3 align="left">Languages and Tools:</h3>
<p align="left"> <a href="https://www.cprogramming.com/" target="_blank"> <img src="https://devicons.github.io/devicon/devicon.git/icons/c/c-original.svg" alt="c" width="40" height="40"/> </a> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript" target="_blank"> <img src="https://devicons.github.io/devicon/devicon.git/icons/javascript/javascript-original.svg" alt="javascript" width="40" height="40"/> </a> <a href="https://www.python.org" target="_blank"> <img src="https://devicons.github.io/devicon/devicon.git/icons/python/python-original.svg" alt="python" width="40" height="40"/> </a> <a href="https://reactjs.org/" target="_blank"> <img src="https://devicons.github.io/devicon/devicon.git/icons/react/react-original-wordmark.svg" alt="react" width="40" height="40"/> </a>
</p>

Fig: Adding Languages and Tools
Show your latest blog posts from any sources on your GitHub profile/project readme automatically using the RSS feed using this GitHub Action. To show your blog post follow those steps.
.github and create a workflows folder inside it.blog-post-workflow.yml with the following contents inside the workflows folder:name: Latest blog post workflow
on:
schedule: # Run workflow automatically
- cron: '0 * * * *' # Runs every hour, on the hour
workflow_dispatch: # Run workflow manually (without waiting for the cron to be called) through the Github Actions Workflow page directly
jobs:
update-readme-with-blog:
name: Update this repo's README with the latest blog posts
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: gautamkrishnar/blog-post-workflow@master
with:
feed_list: "https://dev.to/feed/kmhmubin,https://mubinsodyssey.com/rss.xml"
# Blog posts
<!-- BLOG-POST-LIST:START -->
<!-- BLOG-POST-LIST:END -->
To trigger the workflow manually, please follow the steps:
Latest blog post workflow and click run workflow button.
Fig: Trigger the workflow manually
It will run the workflow and show the blog post from your website.

Fig: Blog posts shows
To learn more about Blog post workflow, check out this repo by Gautam Krishna R.
WakaTime gives you an idea of the time you really spent on coding. This helps you boost your productivity and competitive edge. To show your waka time stats follow those steps:
<!--START_SECTION:waka-->
<!--END_SECTION:waka-->

Fig: Wakatime API key
repo and user scope from here.
Fig: selecting repo and user scope

Fig: Creating a GitHub API token
You need to save the WakaTime API Key and the GitHub API Token in the repository secrets. You can find that in the Settings of your repository. Be sure to save those like the following.
WAKATIME_API_KEY=<your wakatime API Key>GitHub Personal Access Token as GH_TOKEN=<your GitHub access token>.

Fig: Adding API & Token to repository secret
Create a folder named .github and create a workflows folder inside it.
Create a new file named waka-readme.yml with the following contents inside the workflows folder:
name: Waka Readme
on:
schedule:
# Runs at 12am IST
- cron: '30 18 * * *'
jobs:
update-readme:
name: Update Readme with Metrics
runs-on: ubuntu-latest
steps:
- uses: anmol098/waka-readme-stats@master
with:
WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
Commit and wait for it to run automatically, or you can also trigger it manually to see the result instantly.
By default, all flags are enabled; if you want to disable some of these flags, add a False value end of the flags. Here is an example:
name: Waka Readme
on:
schedule:
# Runs at 12am IST
- cron: '30 18 * * *'
jobs:
update-readme:
name: Update Readme with Metrics
runs-on: ubuntu-latest
steps:
- uses: anmol098/waka-readme-stats@master
with:
WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
SHOW_PROJECTS: "False"
SHOW_COMMIT: "False"
SHOW_PROFILE_VIEWS: "False"
SHOW_LINES_OF_CODE: "False"
SHOW_DAYS_OF_WEEK: "False"
SHOW_SHORT_INFO: "False"
SHOW_LOC_CHART: "False"
SHOW_LANGUAGE_PER_REPO: "False"
To learn more about waka time readme stats by Anmol Pratap Singh.
GitHub Readme Stats is a tool that allows you to generate GitHub stats for your contributions and repositories and attach them to your README. GitHub profile is really just a place to showcase your repositories and highlight your activity/contributions. To show your dynamically generated GitHub stats on your readme, follow those steps:
?username= value to your GitHub's username.<!-- GitHub stats -->
<b>โก My Dev Statistics</b>
<p>
<!-- GitHub Stats -->
<img height="180em" src="https://github-readme-stats.vercel.app/api?username=kmhmubin&show_icons=true&hide_border=true" />
<!-- Most Used Languages -->
<img height="180em" src="https://github-readme-stats.vercel.app/api/top-langs/?username=kmhmubin&exclude_repo=KNN-Image-Classification&show_icons=true&hide_border=true&layout=compact&langs_count=8"/>
</p>

Fig: Showing GitHub Stats
You can change the theme and color style however you want. To change color or theme, then check out this repo.
You can dynamically generate your GitHub followers. It's enjoyable to see who is following you. To show your dynamically generated follower on your readme, follow those steps:
src inside your repository.getTopFollowers.py with the following contents inside the src folder:"""
Copyright 2020 Yufan You <https://github.com/ouuan>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
"""
import requests
import sys
import re
if __name__ == "__main__":
assert(len(sys.argv) == 4)
handle = sys.argv[1]
token = sys.argv[2]
readmePath = sys.argv[3]
headers = {
"Accept": "application/vnd.github.v3+json",
"Authorization": f"token {token}"
}
followers = []
for i in range(1, 100000):
page = requests.get(f"https://api.github.com/users/{handle}/followers?page={i}&per_page=100", headers = headers).json()
if len(page) == 0:
break
for follower in page:
info = requests.get(follower["url"], headers = headers).json()
if info["following"] > 5000 and info["public_repos"] < 50:
print(f"Ignored: https://github.com/{info['login']} with {info['followers']} followers and {info['following']} following")
continue
followers.append((info["followers"], info["login"], info["id"], info["name"] if info["name"] else info["login"]))
print(followers[-1])
followers.sort(reverse = True)
html = "<table>\n"
for i in range(min(len(followers), 14)):
login = followers[i][1]
id = followers[i][2]
name = followers[i][3]
if i % 7 == 0:
if i != 0:
html += " </tr>\n"
html += " <tr>\n"
html += f''' <td align="center">
<a href="https://github.com/{login}">
<img src="https://avatars2.githubusercontent.com/u/{id}" width="100px;" alt="{login}"/>
</a>
<br />
<a href="https://github.com/{login}">{name}</a>
</td>
'''
html += " </tr>\n</table>"
with open(readmePath, "r") as readme:
content = readme.read()
newContent = re.sub(r"(?<=<!\-\-START_SECTION:top\-followers\-\->)[\s\S]*(?=<!\-\-END_SECTION:top\-followers\-\->)", f"\n{html}\n", content)
with open(readmePath, "w") as readme:
readme.write(newContent)
# My followers
<!--START_SECTION:top-followers-->
<!--END_SECTION:top-followers-->
**.github** folder.topFollowers.yml with the following contents inside the workflows folder:name: Get Top Followers
on:
push:
branches:
- master
schedule:
- cron: '0 20 * * *'
jobs:
top-followers:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install requests
run: pip install requests
- name: Update README
run: python src/getTopFollowers.py ${{ github.repository_owner }} ${{ secrets.GITHUB_TOKEN }} README.md
- name: Commit changes
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add -A
git diff-index --quiet HEAD || git commit -m "Update top followers"
- name: Pull changes
run: git pull -r
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}

Fig: Top Follower Preview
This Python Scripts originally developed by Yufan You, so check him out.
From awesome photography to cool GIFs to Spotify โNow Playingโ badgesโฆ pretty much anything goes. It doesnโt have to be crazy or complicated. Some of the coolest profiles are quite simple.
These are just some of the creative ideas Iโve seenโฆ the world is your oyster. Take advantage of the profile to show off your personality. Make it concise, be creative, and original, but most importantly, make it your own.
Check out my profile README if youโre interested and follow me on GitHub.
๐ฉ๐ If it was useful to you, please Like/Share to reach others as well. Please hit the Subscribe button at the top of the page to get an email notification on my latest posts.
I talk about web development and UI design on Twitter @kmhmubin, come to talk with me there!