The Discourse Encouragement Fund

Erlend Sogge Heggen February 16, 2017

For almost a year now, we’ve been doing something that’s considered quite risky for an open source project: Paying contributors. Communities like ours are fundamentally built on intrinsic motivation. Getting money involved can jeopardize the whole ecosystem, but for the past year we’ve been experimenting with a model that lets us pay contributors for mission-critical work, while maintaining a culture of volunteerism.

It all started with the Mozilla Open Source grant* about a year ago. This grant effectively enabled us to pay our own developers to work on features that were strategic to our business, as long as these features were also aligned with the “common good” mission statement set forth in our MOSS roadmap (which was to improve our email capabilities). So with some of our company’s developer time being paid for by this grant, we decided to pay it forward by using an equivalent amount of our own money on some more experimental ventures for developers from our community to take on.

To date we’ve paid 16 different developers a total of $17’000 to work on bite-sized tasks. All of the work is open source, and two of the developers we’ve worked on paid assignments with are now core members of our team!

A process for rewarding contributors

For the past year, we’ve been fine-tuning the process of handling paid contributor work. These are the key lessons we’ve learned:

  1. Define a rough spec. A one-pager with bullet points, posted as a public discussion topic on, would usually suffice. The important part is to move past any implementation controversy. Unlike in-house development where we sometimes start work while the spec is still being defined and talk, argue and finally agree through code, this is not ideal for outsourced work. The spec can still be rough as long as there is 100% consensus on the key ideas among the core developers.

  2. Make it a bite-sized task. All tasks pay between $150-$1500. Any less and it’s usually better to leave it as a pro-bono contribution opportunity. Any more and it’s gonna become a project (i.e. dependencies, deadlines) instead of a one-off task.

  3. No hourly rate. A fixed fee simplifies the transaction. We say “would you be interested in doing Task-X for Y$?”; the contributor assesses the scope; after cutting out a couple stretch goals we’re in business. This payment is not so much a freelance assignment as it is an acknowledgement of a valued contributor.

  4. We choose who, what and when. At first we tried to put tasks “up for grabs”, but this method didn’t work too well. You end up with multiple takers and you have to pick one and let others down. Instead, we approach developers individually, one at a time. Since we’re an open source project we know fairly well who’s capable of what, so we’ll tap our top prospect, present the task & “bounty”, and get a yes or no. If no, we move on to the next good prospect. If we run out of good prospects for a specific task, we’ll either do it ourselves or put it on hold.

  5. Tasks are mostly strategic. As in, directly or indirectly, this improvement is gonna save or earn CDCK Inc. money. This is the easiest way to draw a line between “what type of job deserves funding?”

  6. Tasks are mostly time insensitive and free of dependencies. Doesn’t really matter to us if it’s done tomorrow or next month as long as it gets done. It’s not a good idea to expect part-time contributors to jump on to the speeding train that is core development.

  7. Spread it out. We’ve tried to not play favorites. Most volunteer contributors appreciate the opportunity to work closely with the core team at a more professional level – as do we with them – so we want to have that experience with as many regulars in our community as possible: programmers, designers and technical writers alike. What’s more, as a sporadic call-to-action it doesn’t appear to disrupt the give & take spirit of open source volunteerism.

This is a process that will continue indefinitely, as we are extremely happy with the outcome for both our product and community.

For a long time this was just something we were doing, but eventually it became “The Discourse Encouragement Fund”. As much as we’d like to, we can’t put every one of our contributors on a steady payroll. What we can do is remind them that the work they’re doing is valuable, in every sense of the word, and that there is money to be made from specialising in Discourse. For the truly committed, the opportunities are out there. A bigger ecosystem benefits us all, so if you’re entertaining the thought of generating a steady income through Discourse work, we’d love to talk about it.

p.s. we recognise that having the time to volunteer in the first place is a privilege. In conjunction with the Encouragement Fund, we are also experimenting with contracting gigs and paid internships, but that’s a different post for another time!

Notable Replies

  1. From customers who purchase hosting plans at

    The general idea is that paying customers help improve Discourse, both for themselves, and for the greater open source community at large.

  2. ljpp says:

    I’ve thinking about ways to micro-contribute to Discourse financially. Got this idea:

    • Bring ad plugin to the core, improve it.
    • Enable ads here
    • Offer a micro payment option to remove ads (add this feat too). Meta has a nice and growing user base.
    • Profit

    You provide free software and free support. We (members) might as well contribute a little, financially.

  3. It’s fine to contribute by spreading the word about Discourse, it’s also most excellent to contribute by running a real live Discourse community and providing feedback!

    Stepping up from that, people can contribute bugfixes, localizations, general support of others, and tons of other stuff.

    :moneybag: is important, it is what keeps us in business for sure… but it’s not the only thing that matters by any means.

  4. Lutz says:

    Regardless of the fact that I am trying to support you with a little bug testing, I would also like to contribute something from time to time. The easiest would be a quick paypal donation. I think many smaller donations will help you as well.

    It is difficult to keep a smaller forum alive. Especially for non-English Communites. I am very glad to have made the step from phpBB to Discourse. This opens up many new possibilities. For this and for the support, here in this forum, I’m really grateful.

  5. Thanks, greatly appreciated! But we will gladly accept donations of your time more so than money. :wink:

  6. I think @codinghorror is right. Communities are created and grown by sharing a passion. Our passion is Discourse. The biggest mistake you can make is to divert focus from that. That’s a great attest to the professionalism of the Discourse team. And in this stage of Discourse’ lifecycle, quality is the most important factor. It is quality that Discourse distinguishes from other systems, and it is quality that attracts attention. And good community leadership should leverage that any way they can. By welcoming meaningful contributions in any shape or form, you build loyalty. And these days, loyalty is worth its weight in gold. Not in the short term, but always in the long term. And corrrect me if I am wrong, but that has been pretty much @codinghorror’s mindset from Day One.

Continue the discussion

2 more replies