- Published on
Meet verto.sh: Your Gateway to Open-Source Collaboration.
- Name
- Luca Cavallin
About a year ago I started verto.sh, a website that helps you find a project for your next open-source contribution. I've been working (and other contributors!) on it in my spare time and I'm excited to share it with you.
What is verto.sh?
verto.sh is a website that helps you find a project for your next open-source contribution. It's a simple website that shows you a list of projects on GitHub that have open issues labelled as good first issue
or help wanted
(configurable in the source code). You can filter repositories by programming language or tag and sort by stars. verto.sh is free and open-source, inspired by DeepSourceCorp/good-first-issue, which is now unmaintained and outdated. I wanted to create a similar project, but with a few differences:
Stricter criteria for adding a repository to the website
More filters and sorting options
A better user experience
Low operational costs to keep the project running for a long time on its own
How does it work?
verto.sh is a static website that is generated using Next.js (and therefore React.js), TypeScript and TailwindCSS. The source code is available on GitHub:
The data/get.ts script fetches data for the repositories from the GitHub API and it has recently been updated to use the GraphQL API for performance and rate-limiting reasons. Once the data is fetched, the script generates a JSON file that is used by the website to display the repositories. The static website is then deployed to GitHub Pages every 24 hours using GitHub Actions.
How can I contribute?
There are many ways to contribute to verto.sh: for example, there are a few open issues in need of a contributor and we are always open to feedback and feature requests. The repository contains a detailed guide on how to contribute to the project, but here's a quick summary:
Fork the repository, clone it locally and ensure you have a recent version of Node.js installed
Use the included data/data.json file to test the website locally
Install the dependencies with
npm install
Run the development server with
npm run dev
Furthermore, the repository contains configuration for Prettier and ESLint to ensure code quality and consistency (on top of what TypeScript already provides). You can run npm run lint
to check for any issues, or let the pre-commit hook take care of it for you. In the CI pipeline, similar checks are run again.
If software development is not your thing, you can still contribute to the project by helping us grow the community and spread the word about verto.sh. You can do so by starring the repository, sharing it with your friends and colleagues, or by adding your repository to the website.
How can I add my repository to the website?
If you have a repository on GitHub that you want to add to verto.sh, you can do so by opening a pull request to the repository, and adding your repository to the config.json file. To maintain the quality of projects in verto.sh, we have a few criteria that your repository must meet:
It has at least three issues with the
good-first-issue
label or other labels defined in config.json (seelabels
at the end)It has at least 10 contributors
It has at least 1000 stars
It contains a
README.md
file with detailed setup instructions for the project, and aCONTRIBUTING.md
file with guidelines for new contributorsIt is actively maintained (last update less than 1 month ago)
I'm looking forward to seeing your pull request!
What's next?
verto.sh is a young project and many things can be improved. Here are some of the things that 17+ contributors and I are working on:
Support for GitLab repositories
Sorting by number of forks and open issues
A search page
A redesign of the website
Several other improvements and bug fixes around performance and usability
Feel free to contribute to any of these issues or open a new one if you have an idea for a new feature or improvement!
Summary
verto.sh is a website that helps you find a project for your next open-source contribution, it is free and open-source, built by and for the community. You can contribute to the project in several ways - and I encourage you to do so. If you have any questions or feedback, feel free to reach out to me!