
hasithasandunYou’ve contributed to open-source projects, merged pull requests, fixed bugs, improved documentation,...
You’ve contributed to open-source projects, merged pull requests, fixed bugs, improved documentation, reviewed code, and collaborated with developers around the world.
But when someone visits your portfolio, how do you present those contributions clearly and meaningfully?
This was a question I started asking myself after becoming more involved in open-source communities.
GitHub provides contribution graphs, pull request histories, and repository activity. However, presenting those contributions professionally on a personal website was not as straightforward as I expected.
That is what led me to build OpenSource Showcase.
Developers often invest significant time contributing to open-source projects.
These contributions may include:
However, these contributions are usually distributed across multiple repositories and organizations.
When applying for internships, software engineering roles, open-source programs, or maintainer opportunities, it can be difficult to demonstrate the impact of this work quickly.
GitHub contains the information, but visitors often need to move between repositories, pull requests, organization pages, and developer profiles to understand what someone has contributed.
I wanted a simpler way to present that work.
The idea started with a simple question:
What if developers could showcase their open-source contributions in the same way they showcase their personal projects?
Developers should not need to manually maintain lists of pull requests or build custom portfolio sections every time they make a new contribution.
Instead, there should be a tool that can retrieve real GitHub contributions, allow developers to select the work they want to highlight, and generate a professional portfolio automatically.
That idea became OpenSource Showcase.
OpenSource Showcase is a command-line tool that helps developers curate their merged GitHub pull requests and generate a dedicated open-source portfolio.
The tool creates a .opensource GitHub repository containing:
The main objectives are to:
Getting started requires a single command:
npx opensource-showcase
The CLI then:
.opensource repositoryInside that repository, OpenSource Showcase creates the following files:
.opensource/
├── index.html
├── README.md
└── contributions.json
index.html
This file contains the generated portfolio website.
It presents your selected open-source contributions in a format that can be viewed and shared as a standalone portfolio.
README.md
This file contains a formatted summary of your contributions.
It makes the repository itself useful as a GitHub-based open-source profile.
contributions.json
This file stores structured, machine-readable contribution data.
It can be used for future integrations, custom portfolio implementations, analytics, or other tools that need access to contribution information.
The generated website is also prepared for GitHub Pages deployment, allowing developers to publish a dedicated website for their open-source work.
Instead of manually copying contribution links into a portfolio, the showcase is generated directly from actual GitHub pull requests.
A portfolio becomes less useful when it is outdated.
One of my main requirements was to make the generated showcase maintainable without forcing developers to rerun the entire setup process after every new contribution.
After creating the showcase, you can run:
npx opensource-showcase setup-bot
This installs a GitHub Actions workflow inside the .opensource repository.
Once the workflow is configured, the showcase can be managed through GitHub issue comments.
/showcase add https://github.com/org/repo/pull/123
/showcase remove https://github.com/org/repo/pull/123
/showcase refresh
When you merge a new pull request, you can add it to the portfolio with a comment.
When you no longer want to display a contribution, you can remove it.
When repository metadata or contribution details change, you can refresh the generated data.
This approach does not require:
GitHub Actions handles the automation inside the generated repository.
As your open-source journey grows, your showcase can continue evolving with it.
.opensource Repository?
I wanted the portfolio to be independent from any individual project repository.
A dedicated .opensource repository provides a central location for:
It also separates open-source contribution history from personal project repositories.
The repository becomes a portable representation of the developer’s open-source work.
GitHub is excellent for hosting code and tracking development activity.
However, a GitHub profile and an open-source portfolio serve different purposes.
A GitHub profile contains the evidence of your activity.
A portfolio provides context and presentation.
A portfolio should help visitors understand:
OpenSource Showcase does not replace GitHub.
It creates a clearer presentation layer using contribution information already available on GitHub.
My interest in open source has grown significantly over the past few years.
By contributing to different projects, I had opportunities to:
As I updated my portfolio and professional profiles, I realized there was no simple way to present all those contributions in one place.
Most developer portfolio templates focus heavily on personal projects.
They often provide sections for:
However, they provide limited support for presenting open-source involvement.
I could have built a custom portfolio section, but I would then need to update it manually whenever I completed another contribution.
Instead of solving that problem only for myself, I decided to build a reusable tool for other contributors.
OpenSource Showcase may be useful for:
It may be especially valuable for developers whose strongest experience comes from contributions made across several external repositories.
You do not need to install the package globally.
Run it directly using npx:
npx opensource-showcase
To configure the automation workflow afterward, run:
npx opensource-showcase setup-bot
You can find the package on npm:
https://www.npmjs.com/package/opensource-showcase
This is only the beginning of the project.
Some improvements I am considering include:
Community feedback will play an important role in deciding which features should be prioritized.
I would especially appreciate feedback on the following areas:
Bug reports, feature suggestions, design feedback, and contributions are welcome.
Open source is about more than writing code.
It is also about collaboration, learning, sharing knowledge, reviewing work, improving documentation, supporting communities, and helping projects grow.
Those contributions represent real engineering experience, but they are not always easy to present professionally.
If you are contributing to open source, your work deserves to be visible and understandable.
OpenSource Showcase started as an attempt to solve a problem I personally experienced. I hope it can also help other developers present their contributions and document their open-source journeys.
You can try it here:
https://www.npmjs.com/package/opensource-showcase
I would love to hear your feedback, feature ideas, and suggestions.
Happy contributing! 🚀