Fundraising in KDE

Carl Schwan carl at carlschwan.eu
Tue Sep 22 23:53:34 BST 2020


Hello everyone,

Nate gave an excellent talk at the Akademy about how we can konquer the world
and reach new horizons with our software. One of the first steep for Nate is
for the e.V. to start paying more developers to work on core KDE technologies.

I believe there is an even more important steep before, finding the money to
pay the developers. The current incomes of the e.V. are €183.883 while the expense
is €258.851. No need to be good in maths to understand that we are losing money.
This is normal because we were hoarding too much money for a long time without
spending it, but this is still not a sustainable situation and if we start
paying developers we will need to find even more money.

KDE's current incomes come from donations from companies (€60 000) but also from
doing one time donations (€35 000) or recurring donations (€9000) from
individuals. There is also a lot of companies that help by sponsoring the
Akademy and other events organized by KDE. The numbers above are only my prognostics
looking at the current trends.

Many thanks to all these wonderful people donating money to the e.V. but this
is unfortunately not enough and if we want to start paying developers we will
need to change our fundraising strategy radically.

One of the reasons why we don't raise as many funds as we could is because of
the failure of our recurring donation system. When the money raised through the
one-time donation system increase by 50% in just one year, the recurring
donation system lost 10% of its donors at the same time.

Currently, we are using CiviCRM as our donation system, CiviCRM is a Customer
Relationship Management for non-profit and non-governmental groups. CiviCRM
is a complex web application and has many features for non-profit, we are
currently using the CiviContribute extension to manage the recurrent donations.

Unfortunately, like the numbers are telling, this doesn't work well. We have
technical difficulties with the system. The problems are not new and there were
multiple attends to fix then by hiring CiviCRM specialized consultants. KDE e.V.
recently hired new consultants, and I'm crossing my fingers that this time it
will work. This would at least solve some problems for the time being.

Another problem to solve is the design of the website: To make it short,
[relate.kde.org](https://relate.kde.org) is ugly and needs a visual
refresh and an update of the content. So I developed a new theme, available
[here](https://invent.kde.org/carlschwan/civicrm-relate-docker/-/tree/main/aether).
It's not perfect but a lot better than the current one and it was quite a
horror story (more on that later).

And the last problem is also how we are positioning our donation system.
Currently, it's a traditional organization membership fee and this is the reason
why we are using CiviCRM. When someone pays €100 per year, they become a KDE e.V.
supporting member. Their donation helps KDE e.V. in its activities (sponsoring
sprints, servers, ...). This works if we want KDE to remain a small and
traditional organization developing software as a hobby, but I don't think this
is our goal. Our vision is:

"A world in which everyone has control over their digital life and enjoys
freedom and privacy."

And to achieve this vision, we need to grow, get more people involved, making
sure that people can make a living by contributing to KDE and also contribute
to the less fun area of KDE (the thing that nobody cares about but is really
important like accessibility).

I believe that if we were to communicate more clearly how by donating, we are
able to improve our software and moving forward with our vision, it should
encourage more people to donate.

Moving forward I don't think CiviCRM is the solution for KDE. I'm quite happy
that the immediate problems will hopefully get resolved soon but we need a
better long term solution.

CiviCRM requires constant maintenance and since the business model is having
a network of consultants, it wasn't developed with easy of use in mind. For
example it doesn't use the standard PHP package manager `composer`, but require
instead of downloading each package manually and keeping track of the version
manually.

CiviCRM uses the infamous Drupal 7 theming engine for rendering the pages.
It means that instead of working with a templating engine like 99% of the web
frameworks, Drupal 7 works with hooks, hooks are function that gets called
when rendering a certain portion of a page. This creates a very inflexible
way to create a website and with some part of the layout that can only be
changed using JavaScript. CiviCRM doesn't help by creating a dumping its forms
without any way to customize the appearance unless you again use JavaScript to
change the HTML dynamically.

The good news is that CiviCRM will soon switch to Drupal 8 and use a normal
templating engine, but it also means that the theme will need to be
rewritten and data migrated. And Drupal 8 will be EOL in November 2021, so we
will need to rewrite two times our theme in 1 year.

There are many other parts of CiviCRM that I think are not great, and
if someone interested in hearing more I would happily give you more details.

But more importantly, I don't think CiviCRM is adapted for our needs of a simple
but also a super-efficient donation system.

Because of this, I experimented with a new system based on the Blender Fund
project. Blender Fund was developed by Blender devs and allowed Blender to
raise enough money to employ many Blender devs to work full time on Blender.
This allowed Blender to become a leading 3D creation suite. See
https://www.youtube.com/watch?v=Jcl3--cbULk. Blender Fund is licensed under
GPL and is based on Django.

A demo of my proposed system can be found here: https://fund.carlschwan.eu/
and the repo https://invent.kde.org/websites/fund-krita-org. A nice thing
about the system is that it is easy to switch the skin for other projects
(e.g. https://krita-fund.carlschwan.eu).

An interesting feature is that it is already integrated with the future
replacement of KDE Identity (code name MyKDE). So you can already login in to
these demos using your KDE Identity credentials. Another feature is that donators
get a badge that they can display on their profile page in MyKDE.

You can also try to subscribe to payment using this fake credit card:
4111111111111111 with an expiration date in the future and play around.

I strongly believe that this can be a part of the solution, but just a part
of the solution. We also need to change our messaging and make our goals more
clear. These are a social problem and not a technical one ;)

My plans for migration would be to run the old CiviCRM system and the new
one at the same time, encourage the CiviCRM donors to renew their subscriptions
in the new system and shutdown CiviCRM then we decide it's not worth supporting
anymore. This is why it is so important that CiviCRM still works and the recent
efforts to make it somewhat work again won't go to waste.

Please let me know if this is worth putting more effort into it or if the current
system is good enough. I feel like this should be a community decision, since
fundraising is everyone's concern. Also, any help is welcome :)

Regards,
Carl Schwan
KDE Web lead developer
https://carlschwan.eu



More information about the kde-community mailing list