DEV Community

Cover image for πŸ‘Ύ Making Open Source contributions a GAME? 🎲

Posted on

πŸ‘Ύ Making Open Source contributions a GAME? 🎲

Any Game Designers around? Let's discuss! πŸ‘‡

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!

level up writing code

What's wrong with normal contributions?

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 MVP: 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:

  1. Contribute code to gather points or
  2. Perform one of the Side Quests
  3. 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 😍 πŸš€

level up writing code

This is enough for us to put some thought into how we could gamify the complete contribution experience in our community:

The overarching concept (draft)

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.

level up

The points help you level up. With each level, you have a new set of rights and benefits.

Level 0 - Registered Contributor

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)

Level 1 - "Repository Rookie"

level 1

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

Level 2 - "Deploy Deputy"

level 2

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

Level 3 - "Pushmaster Prime"

level 3

Benefits: More advanced merch (limited stuff) to celebrate leveling up, GitHub badge
Rights: Work on all issues incl. ones with bounties ($)
Limitations: -

Points to reach next level: 7000

Level 4 - "Formbricks Legend"

level 4

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?

Open questions:

  1. How do we structure the ideation process best? Any methods or frameworks?
  2. What are the most common mistakes people make when designing a game?
  3. 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?
  4. What are we totally missing?
  5. What are we getting wrong here?
  6. 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...

Let's discuss πŸ‘‡

This is the point where we can take everyones feedback into account :)

pls star our repo

To support our project and see this gamefied concept become a thing, please star our repository ⭐!

Top comments (3)

shubhampalriwala profile image
Shubham Palriwala

Seen so many projects come and go, building something sustainable for a contributor has always been lacking. This looks super promising and on the right track to solve it!

What do you think of expanding it for other projects to have something similar like a plug-and-play module? A user can have different levels/badges for different projects (only those who participate).

jobenjada profile image

I think that'd be cool! We'll test what works for our community and should then enable other communities to do the same :)

matthiasnannt profile image
Matthias Nannt

I'm really looking forward to this πŸ”₯ It's amazing to see how gamification can drive the engagement of contributors.