I accidentally started working on a new personal project for budgeting that I think others might be interested in. I haven’t open sourced any projects in quite a few years now, but if I actually finish an iteration of this project, I think I’ll probably share it under an open licence.

While I’ll be running the service locally, it is implemented entirely in Javascript React, and could easily be deployed as a SAAS. I was considering sharing it as a hosted service and charging a small fee for it, a little to cover the hosting costs and a little extra for my time. I’m not interested in growing or maintaining a startup, but it would be worthwhile if I could get a couple hundred users each spending a couple bucks a month to support a project they find useful.

At the same time, I’ve been using a terrific todo app called TickTick (If, like me, you’ve been struggling for years to find a so-called ‘productivity app’, I can definitely recommend it). TickTick has a lot in common with the ideal Task tracking app that I’ve had in my head (not to mention prototyped more than once). But there are a couple small things I’d love to add to it if I had the opportunity.

So I started wondering: What if I had a hosted app that was also open sourced and gave refunds to people for every accepted open source contribution?

In the degenerate (most likely?) scenario, this would be a risk-free endeavour; nobody submits anything, and I don’t incur any financial costs. At the hypothetical other end of the spectrum, every user of the service is an open source developer contributing enough features to get their subscription for free. I might be losing money on hosting, but the product is improving at a ridiculous rate. In reality, I would guess that no more than 10% of subscribers would also be contributors, and it’s unlikely that most of them would be ongoing contributors that would pay for their subscription forever. So I’d make a few bucks a month and a few people would get a service they appreciate, and a few others would make it an even better service.

I can think of a lot more reasons this wouldn’t work than that it would:

  • A refund or prorated subscription would be far less than most developers' time is worth. People tend to prefer to work for free (open source) than for less than they are worth. That alone might provide anti-motivation to contribute.
  • It is unlikely anyone is going to use the service at all, let alone contribute to it.
  • Adding subscription plans to a project is a royal pain. I would much rather spend that time developing and maintaining the main product.
  • Deciding how much a given contribution is worth could lead to bitter feelings. Introducing money, even small amounts, to any relationship always makes it complicated.
  • Anyone who knows how to contribute to the project might prefer to fork and self-host it to avoid subscription fees altogether.
  • The service itself may be more useful to non-developers than developers. I’ve noticed that relatively few high quality open source projects are oriented towards non-developers.

One thing I like is that it might lead non-developers to try out open source. Would they write documentation or a translation in exchange for a free month of service? Now that you know how to contribute, would you consider learning how to make a small code change? I’d be delighted to help a new coder solve a problem, even if it took more time than if I was to solve it myself. And I’d be happy to motivate them with a bit of a refund.

Taking this idea just a little further, it might be reasonable to give refunds for bug bounties. If someone who can’t code wants a feature, and someone else implements it, then the person who posted the bounty might get the refund instead of the person who did the implementation. The refund might be something more than whatever they posted, so they end up net positive. This could encourage open source contributions from people who don’t actually use the product.

Of course, if the project suddenly started making real money, I could afford to start paying real money for contributions, rather than just refunds. No company seems to pay for third-party open source work, but I don’t know why. It doesn’t seem any different than paying white hat hackers if they find a security hole in your project.

Anyway, I don’t know if I’ll ever attempt it. I’ve spent way too much time implementing payment gateways and it’s not something I want to do on a for fun project. But it’s a model I’ve never seen proposed before, so I wanted to muse about it.