The open source Upwork for engineers
Website
·
Docs
·
Discord
·
Twitter
·
YouTube
·
Issues
Algora exists to reduce the friction in hiring and collaborating with open source developers.
Algora combines:
- a GitHub app to reward bounties and tips on issues/PRs
- a payment processor to handle payouts, compliance & 1099s
- a web app for sharing bounties, contracts and jobs
- a history of transactions, invoices and peer reviews
- a marketplace to meet and collaborate with top contributors
Use with your | Benefit |
---|---|
open source community | fund, solve and reward bounties on GitHub issues |
contractors | manage work and complete outcome based payments |
job candidates | collaborate on paid projects for interviews |
teammates | run an internal bounty program for fun and profit |
Algora community experts | get work done and grow your team |
|
|
|
|
|
|
|
|
|
|
|
|
- Profile enhancements
- Highlighting top non-bounty open source contributions
- Embeddable profile for GitHub and personal websites
- One-click bounty and contract sharing
- Hiring platform features
- Job posting and application management
- Developer ranking system using our ELO algorithm based on OSS contributions
- Technical interview tools with bounties and contract work
- Customizable career page embeds for seamless integration
- New payment/payout options
- Alipay, Wise, crypto etc.
- New workflow integrations
- GitLab, Linear, Plane, Cursor etc.
- New clients
- Mobile, desktop, CLI
- Crowdfunding enhancements
The easiest way to get up and running is to install and use Docker for running Postgres.
Make sure Docker, Elixir, Erlang and Node.js are all installed on your development machine. You can install Elixir and Erlang/OTP by running asdf install
from the project root.
We also recommend using direnv to load environment variables and entr to watch for file changes.
-
Clone the repo and go to the project folder
git clone [email protected]:algora-io/algora.git && cd algora
-
Initialize and load
.env
cp .env.example .env && direnv allow .env
-
Start a container with latest postgres
make postgres
-
Install and setup dependencies
make install
-
Start the web server inside IEx
make server
-
(Optional) Watch for file changes and auto reload IEx shell in a separate terminal
make watch
Some features of Algora rely on external services. If you're not planning on using these features, feel free to skip setting them up.
Register new GitHub app and set
- Homepage URL: http://localhost:4000
- Callback URL: http://localhost:4000/callbacks/github/oauth
- Setup URL: http://localhost:4000/callbacks/github/installation
- Redirect on update: Yes
- Webhook URL: https://[your-public-proxy]/webhooks/github (e.g. ngrok, Cloudflare Tunnel)
- Secret: [generate new random string]
- Permissions:
- Read & write issues
- Read & write pull requests
- Read account email address
- Events: issues, pull requests, issue comment, pull request review, pull request review comment
Once you have obtained your client ID and secret, add them to your .env
file and run direnv allow .env
.
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
GITHUB_APP_HANDLE=""
GITHUB_APP_ID=""
GITHUB_WEBHOOK_SECRET=""
GITHUB_PRIVATE_KEY=""
Create new Stripe account to obtain your secrets and add them to your .env
file.
STRIPE_PUBLISHABLE_KEY=""
STRIPE_SECRET_KEY=""
STRIPE_WEBHOOK_SECRET=""
To host static assets, set up a public bucket on your preferred S3-compatible storage service and add the following credentials to your .env
file:
AWS_ENDPOINT_URL_S3=""
AWS_REGION=""
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
BUCKET_NAME=""
To receive webhooks from GitHub or Stripe on your local machine, you'll need a way to expose your local server to the internet. The easiest way is to use a service like Cloudflare Tunnel or ngrok.
If you'd like to utilize our Cloudflare Tunnel GenServer to automatically run a tunnel when you start the app, you'll need to set up a named tunnel on your own domain:
cloudflared tunnel login
cloudflared tunnel create local
cloudflared tunnel route dns local http://local.yourdomain.com
And then add it to your .env
file:
CLOUDFLARE_TUNNEL="local"
If you're using another service, make sure to start the tunnel manually in another terminal.