How to Create a Compelling GitHub Portfolio
Cloud Employee · Originally published September 28, 2021 · Updated October 31, 2026 · 7 min read
Build a GitHub portfolio around projects you can explain, using GitHub’s limit of 6 pinned repositories and gists to keep the selection focused. Start with work someone can run, then use the README to explain a decision and its trade-off.
Choose a project you can talk through
You don't need another half-finished demo. Pick a small project that does something you care about, then make it understandable to someone who wasn't there when you built it.
For a web role, a study planner is enough to get specific. Let someone add a task, mark it complete and find it again after a reload. Explain what happens when the input is empty or the saved data is missing.
Coursework is fine when sharing is permitted. Credit the tutorial or brief, name your own changes and separate your work from a teammate's. If all you changed was the color scheme, say so.
Write the README before adding more features
Open the repository as if you've never seen it before. Can you tell what it does, how to run it and where to look first? Put those answers near the top of the README.
Then explain a choice. A planner that saves tasks in the browser is simple to run, but the tasks won't follow you to another device. That limitation gives you something concrete to discuss, including what you'd change if accounts and syncing became necessary.
Give your profile a clear starting point
A profile README can introduce your work and point to a starting project. GitHub displays one from a public repository named exactly like your username when its root README.md contains content. Managed user accounts do not support this feature, so use a personal account for your public portfolio.
Keep your introduction short enough that the projects are easy to find. Say what you're building, point to a starting project and add contact details only if you want them public. A long badge collection can wait.
GitHub lets you pin up to 6 repositories and gists combined. Use the space for a small selection with different strengths, such as application behavior, data handling and collaboration. You do not need to fill every slot.
- 01A short introduction. Say what you build and which project to open first.
- 02A deliberate selection. Choose pinned projects that show different work. Empty slots are fine.
- 03A useful repository. Let the README lead to setup steps, a demo and one explained decision.
Illustrative projects and layout, not a GitHub screenshot.
Let the work show how you think
Keep commits focused on a change you can explain. A pull request about a broken date filter, with the failing case and the fix, gives you more to discuss than a message that just says ‘updates’.
Use an editor, a desktop client or the command line, whichever you understand. Be ready to explain the diff and run the checks. You don't need to rearrange your history to make it look as though you code every day.
If AI helped write the code, explain what you kept, what you changed and what you checked yourself. Try changing a requirement without returning to the original prompt. If you can't explain a function yet, spend time with it before making it the centerpiece of an application.
A pair programming interview gives you another place to explain those choices while working through a change with someone else.
Add a Pages site only if it helps
A profile and a portfolio website do different jobs. Your profile points to the work; a website can make demos easier to browse. Finish a repository's README before spending a weekend on a homepage.
GitHub Pages supports public repositories on GitHub Free, with private source repositories available on certain paid plans. A private source repository does not, by itself, make the published website private.
For a simple static site, add an index.html with its assets. Open Pages in the repository settings and choose a publishing source, following GitHub's instructions for a branch or an Actions workflow. Check the deployment result and open the published site.
Try every link on a phone as well as a desktop. Project sites can sit under a repository subpath, so a link that works locally may break after deployment. Pages serves static files; your application's backend will need to run elsewhere.
Check it before you send it
Clone the project into a fresh folder and follow your own instructions. If a setup step only works because of something already installed on your laptop, add that requirement to the README.
You can use a template, provided its license permits it. Replace the sample projects and check every demo link. Label archived work clearly so someone doesn't mistake an old experiment for the project you want to discuss.
Keep confidential work private. A separate demo with synthetic data lets you explain a similar technical problem without copying an employer's code or customer records. Get permission before sharing client material, including screenshots.
Turn an exercise into your next project
If you're stuck choosing a project, start with a behavior you've practiced and give it a small, useful home. A sorting exercise could become a reading list you can reorder and save. Write down what the exercise didn't cover, then work on one of those gaps.
Use these coding practice sites to work on the skill your project needs next, then apply it without the exercise instructions.
Frequently Asked Questions
How many projects should a GitHub portfolio include?
Choose projects you can explain and that show different relevant skills. GitHub allows up to 6 pinned repositories and gists combined, so treat that as a limit rather than a target to fill. For each selection, describe your contribution, provide working setup instructions and include a decision you could discuss in an interview. If several projects repeat the same tutorial, improve the clearest example before adding another copy with a different name.
Do I need a GitHub Pages website?
A GitHub Pages website is optional for a portfolio. A clear profile and documented repositories already give someone a place to explore your code, run a project and understand what you contributed. Add a site when screenshots, demos or a short project index make that work easier to browse, and check links on a phone after publishing. Pages serves static files, so a demo that needs a backend will need that service hosted elsewhere.
Can beginners use coursework in a portfolio?
Beginners can include coursework when the course rules permit sharing it publicly. Credit the original brief or tutorial, say what you built yourself and what classmates contributed. If the assignment supplied the structure, explain a change you made and how you checked it, such as saving data between visits. Keep the original attribution even after extending the project, so someone reading it can understand where your work begins.
Can I include code from an employer or client?
Share employer or client code only with the necessary permission. Check permission before uploading code, screenshots or sample data, since removing a company name does not make the material yours to share. When permission is unavailable, build a separate demonstration using synthetic data and describe the general technical problem without exposing private details. You can still explain your decisions in an interview while respecting the limits on the original work.
About this guide
Restored from the January 18, 2022 archive of Cloud Employee’s article by Millie Sarcos, originally published September 28, 2021. Cloud Employee prepared this revised version on October 31, 2026. The original project-selection and portfolio-site approach is retained, with current GitHub instructions and no hiring guarantees.
Related articles
10 Best Websites to Practice Coding Online
Choose exercises that fit what you want to learn, then turn the practice into a project.
How to Run Pair Programming Interviews: Cloud Employee’s Hiring SOP
Skim the task-selection steps to see what Cloud Employee’s interviewers look for. Then practise explaining a debugging decision from your own project.
How to Avoid Costly Mistakes When Hiring a Remote Developer
Write a project handoff explaining what the code does and how you tested it, then compare it with the article’s communication advice.
Developer Vetting in LATAM: Live Pair Programming, Coding Tests, and Quality Signals That Matter
Rehearse explaining a bug fix. Say what failed, what you changed and how you tested it, then compare your answer with the article’s pair-programming examples.





