Over the past decade we have seen an explosion in open source. As Open Source grows, their funding methods have stayed essentially the same. Solutions like Github Sponsors and Open Collective allow users to sponsor their favorite repositories, but not individual parts. Git Bid expands Open Source sponsorship options and makes it more fun and rewarding.
What it does
Git Bid introduces a system to allow users to sponsor individual issues. Users can place bids on their favorite issue, and when a PR is merged that closes the issue, the person who closes it gets the money placed. This motivates users to sponsor issues that they care about, and to donate more because they know what they are paying for.
How we built it
We used an ExpressJS server that we hosted on Digital Ocean Kubernetes Engine. We stored bounties in PostgreSQL and Redis to store sessions. We use Stripe to process payments, and PassportJS to help us with Oauth and user storage. We used GitHub actions to automate builds and pushes to Kubernetes.
We built our extension with TypeScript. We had it hook directly into Github Issue pages to display bounties on the Github Issues.
We built our website with Snowpack, TypeScript, SCSS and Svelte. This tech stack was amazing, because of the speed and ease of development it gave us in every stage.
Challenges we ran into
Hosting took us 4 hours to complete. We started on Digital Oceans Kubernetes but couldn't get it working, switch to the app platform, switched to Droplets, however eventually returned to Kubernetes. It took so long because of our databases, which run in Digital Ocean Managed Databases, which was outside of our compute VPC.
Building the extension was also very hard, as we didn't have a functioning API for almost all of the hackathon. We had no idea if it was going to work until near the end.
Accomplishments that we're proud of
This was our first time using Digital Ocean's Kubernetes and we are proud to have gotten it working. This is also our first time using Github Oauth, and interacting with the Github API.
What we learned
We learned all about the Github API, web extensions, and Oauth.
What's next for gitbid
We need to launch an LLC in order to legally process real payments. We will hopefully file later on. We will also likely migrate to Actix Rust for our server performance and security.