How to Create a GitHub Profile README
Step-by-step guide to creating a GitHub profile README. Set up the special repository, write compelling content, and add dynamic elements.
GitHub profile READMEs appear at the top of your profile page. They're a powerful way to introduce yourself, showcase your work, and stand out to recruiters and collaborators. Here's how to create one.
Setting up the special repository
GitHub displays a profile README when you create a repository that matches your username. If your username is janedoe, create a repository called janedoe.
- Go to github.com/new
- Set the repository name to your exact GitHub username
- Make it public
- Check "Add a README file"
- Click "Create repository"
GitHub will show a hint: "janedoe/janedoe is a special repository." That confirms you're on the right track.
What to include
Introduction
Start with who you are and what you do. Keep it to 2-3 sentences. Avoid generic statements — be specific about your interests and expertise.
# Hi, I'm Jane 👋
Full-stack developer building tools for the open-source community.
Currently working on developer productivity at Acme Corp.Current work
Tell visitors what you're focused on right now:
## What I'm up to
- 🔭 Building a CLI tool for database migrations
- 🌱 Learning Rust and WebAssembly
- 💬 Ask me about TypeScript, React, or system designTech stack
List your primary technologies. Badges work well here:
## Tech Stack


Featured projects
Highlight 3-4 of your best repositories:
## Featured Projects
- **[project-name](https://github.com/janedoe/project-name)** — Short description of what it does
- **[another-project](https://github.com/janedoe/another-project)** — What makes this one interestingGitHub stats
GitHub Readme Stats generates dynamic cards showing your activity:
Other popular widgets:
- Top Languages:
github-readme-stats.vercel.app/api/top-langs/?username=janedoe - Streak Stats:
github-readme-streak-stats.herokuapp.com/?user=janedoe - Activity Graph: Shows your contribution pattern over time
Contact links
Make it easy for people to reach you:
## Connect
[](https://linkedin.com/in/janedoe)
[](https://twitter.com/janedoe)
[](https://janedoe.dev)Dynamic content
GitHub Actions for auto-updating
You can use GitHub Actions to keep your profile README fresh. Popular automations:
- Latest blog posts — Pull your RSS feed and list recent articles
- Recent activity — Show your latest commits, PRs, and issues
- Spotify — Display what you're currently listening to
- WakaTime — Show weekly coding stats by language
Example workflow
name: Update README
on:
schedule:
- cron: '0 */6 * * *' # Every 6 hours
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update blog posts
uses: gautamkrishnar/blog-post-workflow@v1
with:
feed_list: "https://janedoe.dev/rss.xml"Design tips
- Keep it scannable. Use headings, badges, and short paragraphs. Nobody reads walls of text.
- Show, don't tell. Link to projects instead of listing skills without context.
- Update regularly. A stale profile README is worse than none.
- Match your brand. Choose a consistent color scheme for badges and stats widgets.
- Test on mobile. Many people browse GitHub on phones — check your layout.
Common mistakes
- Too long. Profile READMEs should be 1-2 screen heights. Beyond that, people stop reading.
- Too many badges. Pick 8-10 key technologies, not every tool you've ever used.
- Broken images. Always test your README after pushing. Use absolute URLs for images.
- No call to action. Tell people what to do next — check out a project, read a blog post, reach out.
Portfolio READMEs for repositories
If you're also looking to improve your project READMEs, we have a portfolio README guide and can generate READMEs automatically from your codebase. Check your existing README quality with our free README scorer.
For badge ideas and configuration, see our GitHub README badges guide.