I'm a maintainer of a popular open source project, we're building an alternative to Typeform + Hotjar (here is the repo ⭐).
Open Source contributions are really great because they have different advantages for different people involved.
However, they also have a few downsides attached to them, which we try to address in a fun way: Making it a game!
These are the problems which are recurring in different flavours:
- We have mostly junior developers = lots of overhead, little initial return
- Some, we help get started to never ship their PR = only additional work on our end
- When we release an issue which requires relevant experience, we often have to tell juniors who jump on it that they are lacking experience. Here we need a better way to preselect.
- The more experienced engineers stick around for 2, 3, 4 PRs but then often drop off. We want them to stick around longer and get something for it.
- We want to compensate for relevant contributions but are afraid to kill the intrinsic drive. This is why we want to embed it into a game.
- Contributors don’t have a great way to showcase their contributions for Formbricks.
- So far, recognising contributors publicly is very manual and time-consuming.
So far so good. We have addressed some of these issues in our first attempt to gamify contributions: The FormTribe hackathon!
Our project is called "Frombricks", our community "FormTribe".
This October, we're running the FormTribe Hackathon. In a nutshell, it works like this:
- Contribute code to gather points or
- Perform one of the Side Quests
- At we end we have a lottery with 65 prizes (MacBook Air M2 is one of them) and the higher your point score, the higher your chances of winning.
So far, this has worked reeeally well! At this point, we have significantly more people wanting to contribute than we have tickets available. We release an issue, reload the page, and someone wants to work on it already 😍 🚀
This is enough for us to put some thought into how we could gamify the complete contribution experience in our community:
The idea is to wrap open source contributions into a habit loop: Trigger, Routine, Reward. In its simplest version it goes like this: See new issue notification (Trigger), create contribution (Routine), collect reward (Points). Restart.
The points help you level up. With each level, you have a new set of rights and benefits.
You can start collecting points by signing up via email. With a simple form you add your GitHub name and Twitter handle for us to bring everything together.
You receive all kinds of instructions via email as well as a notifier, when we release a new issue which you could work on. We also share a list of side-quests you can perform to level up to Level 1 rather quickly;
Points to reach Level 1: 250 (maybe 1h of work)
Rights: Work on beginner issues, limited set of side quests to complete, GitHub badge
Benefits: Shoutout in Weekly / Monthly round up
Limitations: Cannot work on intermediate issues
Points to get to next Level: 1000
Benefits: To celebrate they'll receive merch when leveling up + public shoutout, GitHub badge
Rights: Work on intermediate issues, expanded set of side quests
Limitations: Cannot work on issues with bounties
Points to reach next level: 3000
Benefits: More advanced merch (limited stuff) to celebrate leveling up, GitHub badge
Rights: Work on all issues incl. ones with bounties ($)
Points to reach next level: 7000
Benefits, Rights and Limitations to be decided.
With this level system and the benefits, rights and limitations attached to the levels, we solve quite a few of the problems listed above.
What do you think?
- How do we structure the ideation process best? Any methods or frameworks?
- What are the most common mistakes people make when designing a game?
- What should we take into account designing incentives? We don't want hunger games, we want to foster a spirit of collaboration. How can we make sure we do?
- What are we totally missing?
- What are we getting wrong here?
- Is anyone with relevant xp interested in helping out as a sparing partner? Currently, this is more of a fun endeavour we do on evenings and weekends, but i know that almost all other OS projects have these issues...
This is the point where we can take everyones feedback into account :)
To support our project and see this gamefied concept become a thing, please star our repository ⭐!