🎉 Welcome to the Bonfire Bounty Programme #
Bonfire is an open source framework written in Elixir that enables communities to create their own federated digital space. These spaces can range from simple group chats to complex infrastructures for municipalities, and everything in between.
The Bonfire Bounty Programme offers monetary compensation for tackling specific challenges.
This initiative aims to inspire developers to learn the stack and framework and to create Bonfire extensions, while helping to close some issues along the way.
🏴☠️ Camp! expedition #
We've started a series of expeditions to increase developers contributions and get help to reach our v1.0 release.
The first expedition: Surveying, is currently ongoing and focuses on improving docs and dev onboarding by doing 1-to-1 sessions with developers.
Our second expedition: Camp! includes a series of bounties for developers to help us with current technical blockers.
The Camp! expedition will target a specific set of bounties that is currently preventing Bonfire to be used and adopted more widely and it is focused on the features in the Bonfire Classic flavour. All submissions are evaluated based on the quality of the code, performance and documentation.
Bounties #
Open bounties #
- Improve DB query performance
€1,000
+ half of donations to the dedicated Open Collective - Improve feed rendering performance
€1,000
+ half of donations to the dedicated Open Collective
Upcoming bounties #
- Validate OpenID Connect and OAuth (client and server) implementation
- Refactor and unify feed logic
🫶 Collaborative approach to bounties #
We want to experiment with a bounty system designed to foster collaboration rather than competition. We aim to:
- Organically grow the number of developers contributing to Bonfire.
- Make Bonfire a go-to framework for experimentation, both for people new to Elixir or even to coding and for seasoned developers, with clear design patterns and a robust documentation.
We encourage developers to work openly by:
- Digging into the problem and sharing insights or potential solutions in each dedicated bounty issue.
- Collaborating with others developers to improve the overall quality of solutions.
Additionally, the Bonfire Team will organize recorded sessions to discuss each issue, navigate the relevant code, address blocking issues, tests, and provide pertinent information to ensure developers can effectively work on the bounty.
💰 Compensation #
Primary bounty #
One developer will receive the full bounty amount for the selected solution, plus half of donations to the dedicated Open Collective.
Each submission (likely to consist of pull requests on multiple Bonfire repositories) will be tested and benchmarked on the playground instance.
To be selected, the contribution must demonstrate a deep understanding of the core problem, and solve it effectively and efficiently. Alongside the technical correctness, it should also be submitted with a clean code, clear explanations and a complete documentation.
Additional compensation #
We have allocated a separate fund to reward valuable contributions beyond the winning solution. Depending on available funding, 2 or more developers per bounty can receive €200 each for the following:
- Significant code contribution: You created pull request(s) that while not satisfying all the criteria or fully solving the bounty, inspired and helped other developers to do so. Also valid if you commented on issues or pull requests with additional code to improve other developers’ solutions.
- Meaningful support: You supported other developers in solving the bounty by clarifying issues, reviewing code, running tests and benchmarks, suggesting solutions or improvements, writing documentation, or explaining concepts that helped.
We acknowledge that the funding allocated does not reflect the labour and time that's likely to be involved. To hopefully increase the compensation, we're asking for help from the community: half of the donations collected through each respective Open Collective page will be go to the primary bounty and the other half will be distributed to people who make meaningful contributions, as a way to recognize and encourage broader participation and share responsibility for the project's sustainability with the broader community.
💻 How to participate #
Requisites #
Ensure you have read our Code of Conduct and these guidelines to know what you will expect by participating to our bounty programme. Then read through the bounty details and requirements carefully.
Work on the challenge #
Use the provided resources and fork the relevant git repositories to work on. If you have any questions during your work, feel free to comment directly on the bounty issue and we will be happy to assist you.
Submission #
Once you have started your work (or at any stage you prefer, though we recommend working in the open), create a draft pull request with your code. You can then ask for feedback and iterate on the same pull request until ready to submit.
Discussion and compensation #
The Bonfire team will review and discuss submitted pull requests and merge the one that satisfies all requirements most effectively, and proceed with awarding the bounty (please note that payment may take up to a month).
At the same time, besides the awarded developer, we will optionally compensate other contributors with 200€ each, based on their effort, support, and impact in helping to close the bounty.
ℹ️ Support #
- For questions on a specific bounty, comment on the dedicated issue
- Matrix channels for realtime chat: General & Technical
- Forum for technical discussions: Elixir Forum
- Email for private questions: team@bonfire.cafe