Polarian's Website

New donations page

As of today, I have now got a page for donations.

Motivation

For many years I have been contributing to open source projects. In the early days I was still at school, and contributing was something fun to do in my free time.

Then when I entered Uni open source became much more difficult, time starts to run out and with the costs associated with going to and from University it becomes more difficult to fund projects as well.

After dropping out of University, reality hit. Expecting to be able to contribute to open source for no monetary benefit is just unsustainable. I think it takes until your early 20s to realise the importance of income and money as a whole, and that definitely hit me hard.

People are free to donate if they enjoy/use something I have contributed to or worked on. However the main benefit of a donations page is an easy way to negotiate and pay for small services. See below for more information.

How to fund an open source project

Nobody likes feeling indebt to others, however open source has a few major drawbacks when it comes to financial matters.

  1. Because the source code must be open to all, nothing stops people reading and compiling their own versions. This makes it difficult to directly monetise the source code, or documentation directly.
  2. There is an expectation for open source work to be done without any financial gain. Many people get caught in this trap, where a hobby project gets adopted and then people freeload off that project until the maintainer burns out trying to keep up with no financial gain.
  3. Lots of projects are small, they don't have the same outreach as major projects do, and the labour of those who contribute and or run these small projects often go ignored.

So how do we get around these problems?

  1. Provide services, just because the source code or documentation has to be open to be "open source", your labour doesn't need to be unpaid. If someone wants a new feature, they ought to compensate you for it, if someone wants support or improvements with the documentation, they also ought to pay for it (unless of course, they are willing to do it themself and then send you a patch to review and commit). Your labour has a value, you just have to find those who are willing to pay for it.
  2. Provide hosting. This is an increasingly popular option due to the rise of SaaS (Software as a Service). The idea is simple, you are developing some software which requires a backend, so you can provide hosting for that software as a paid service plan, or the user can host it themself (usually for a higher cost than a small monthly fee for you to host it for them). The consumer gets a cheaper service than they could have ran themself, and you get funding to continue your development.
  3. Grants. There are many organisations out there right now which provide grants or funding for open source projects, identifying it can be difficult to monetise a project alone. The problem with many of these grants is you become reliant on them, and each year you must reapply for funding again, with a chance you will not get the funding and your project will collapse. The other problem is a lot of these grants are provided directly or indirectly by governments. This unfortunately shifts open source more and more towards the financial control of government, rather than distributed within the market, which brings up the concern of centralisation and potentially projects being influenced by government.

Having donation pages not only allow people to fund your work out of their own good will, but also makes it very easy negotiate prices with people who want your labour.

The key here is services, remember your labour is worth something, and if someone is demanding your labour, make sure they are compensating you for it.

For example:

Someone submits an issue on a messaging app you are developing and requests you to add support for backups to nextcloud/webdav.

You see this, and anticipate this will take you 20 hours to implement. Traditionally open source developers would defer the issue until they could find time, or they would work unrealistic hours to implement it for no compensation. Instead a developer should identify that they are happy to do this for £10/hr (ignore minimum wage, it only makes negotiating prices harder) and thus quote the person £200 to implement the feature.

If the user doesn't pay it? defer! If the user "donates" (pays) you the amount, then prioritise implementing it over other unpaid features.

This is pretty much the only way a project can cut their reliance on donations or grants. Revenue allows projects to pay off their infrastructure bills, and the costs of development (laptops, internet, power etc), and potentially in the future pull a profit so that developers can work full time on the project as a job.

Thank you for reading.