Rethink Krita development fund
Closed, ResolvedPublic

Description

New funding site is up and looking good! Great job @ognarb
https://fund.krita.org/

Some things we want to discuss/figure out before we potentially go live.

Development

  1. Braintree integration to get payments working. Is there any development with this, or is this just configuration?
  2. any other features or functionality that is still WIP - question directed at @ognarb
  3. Once we think it is good we probably need to test it out to make sure it is working before we even think about going live.

Goals communication content

  1. have a developer amount to hire for goals? Do we need to tweak the numbers for how much our goals are from what Blender has?
  2. what can we do with more developers that we aren't doing now? This could help us write some text about this site. Maybe borrow a bit from our existing donation page.
  3. maybe that should be a large part of the about page explaining what that is
  4. blender seems to be fitting a lot of this explanation on the About us page. https://fund.blender.org/about/
  5. What do the different membership levels mean? Explain that a bit in the About us page like Blender is doing maybe.
  6. need to discuss if we want to have bigger higher level goals like "improve text tool", or smaller goals that people can vote on.

Content/Translations

  1. how are we going to deal with translations for other countries? Either just show English...or just hide it on krita.org for other languages if it will be confusing
  2. Do we need a "Grants" page right now? If we do, we need some text to understand how this fits in with the monthly goals. For Blender, it looks like this is a history of where the development fund money is going. We could just say something like "No developers currently being contracted now" or something if we want a placeholder.

Site Design
There is a lot of empty space on the funding header area right now. Maybe we can use some fresh artwork by finding something on krita-artists.org and condense the design a bit. I think the important content is too far down the page right now.

Krita.org changes

  1. Do we want to replace the normal one-time donation area?
  2. Can people make one-time donations with this fund site? It doesn't look like it
  3. Blender seems to be dissuading people from using one time donations by putting that on their more hidden "Foundation" page https://www.blender.org/foundation/donation-payment/. Do we want to do that, or make the two options more clear on our existing donations page?
There are a very large number of changes, so older changes are hidden. Show Older Changes
ognarb added a subscriber: ognarb.Aug 12 2019, 9:52 AM

With a little bit of looking into things, we are going to need to start having a username and login to manage this information like id.blender.org takes care of.

Do we want to have another log in system just for the development fund, or I wonder if it is possible to tie into a system we already have?

This ID could be potentially used long term for other things like stores and training like blender does. Something to think about.

This definitely needs discussion with the sysadmins. Ben -- what do you think? Basically, we will need to store our dev fund subscribers info somewhere, and allow them to change that themselves.

I think Blender has a standalone authentication site that runs through id.blender.org. The other sites like cloud.blender.org and fund.blender.org use it to authenticate. Those websites can do whatever they want then.

We already kind of do this with Krita.org since it has a LDAP plugin that does something with usernames. I am not sure if we could just just do something similar for a development fund thing.

I also see something like this that KDE uses, but the payment options look pretty limited... https://relate.kde.org/civicrm/contribute/transact?reset=1&id=9
That looks like it plugs into CivicCRM, which I am guessing at this point Krita is probably not going to be using?

KDE is looking for an identity replacement: https://phabricator.kde.org/T8449. I don't know if blender id (https://developer.blender.org/diffusion/BID/) was considered as a replacement or not.

huftis added a subscriber: huftis.Aug 12 2019, 5:53 PM

Sorry for the delay in getting back to you on this.

@rempt Integrating with KDE Identity should be pretty straight forward. Given all the issues we've had with CiviCRM i'm not sure it's a good base to use for this though.
I'm fine with storing that sort of information - we already do this for KDE's CiviCRM.

As far as the last fundraiser, I donated a good bit, but I cannot donate any regular way, besides theta, so, ... idunno.

3 of the 5 above options deal with money. No comment.

rempt added a comment.Aug 31 2019, 7:39 AM

@Metallicow: this won't be a remplacement for one-off donations or yearly fundraisers, but rather an extra option.

@bcooksley : no, I think we shouldn't use civicrm either. We might want to take a look at blender's dev fund code and check whether we can integrate it with identity. I don't think it uses civicrm in the background -- at least, I hope not.

ognarb added a comment.EditedNov 4 2019, 12:12 AM

I'm doing some using blender id as a replacement for KDE identity. This would allow to get a krita fund based on blender fund 'very easily'.

My work is located at:

The current change between the upstream version and my forks are:

  • branding (KDE identity is WIP, Krita fund is very WIP)
  • using plain HTML instead of pug files
  • using requirements.txt and normal python venv instead of pipenv
  • a WIP branch with 2fa for KDE Identity

@ognarb - thanks for starting to look into this. This could work out pretty well. It sounds like the KDE identity work is still in flux a bit, so maybe this blender ID mechanism is something that could replace the old system.

I don't know all the touch points for the KDE identity stuff, so not sure how hard it would be to change the ID mechanisms. Let me know if there is anything you want me to take a look at or help out with.

ognarb added a comment.Nov 4 2019, 1:41 PM

The work concerning KDE Identity is tracked in T8449. I already contacted the blender devs some time ago for license clarification and possible upstream of some features (2fa, multiple emails address support), but I didn't have the time until recently to work more on it (moving all the KDE website to php7 and some problems in the mediaWiki instances).

rempt added a comment.Jan 16 2020, 1:35 PM

I see that fund-krita-org also pulls in one other blender repo, websrc/blender-web-assets -- I guess we should clone or integrate that on fund-krita-org, right?

The other blender repo is responsible for the entire blender unified styling. I don't use it anymore and I generated the pure HTML templates in /templates and use the CSS from krita.org directly.

I won't have the time during the next two weeks to work on it since I have exams soon but after that, I will be on vacation for two months, so I should have a lot more time to invest in this project.

Oh, that would be great!

So, what should we do now? I'd like to get this project going forward again :-). Anything I can do?

Work restarted :) the new approach now use gallien.kde.org as identity provider (soon to be renamed to MyKDE) and the infrastructure is shared with https://fund.carlschwan.eu/ (the kde equivalent to this project) so that the maintaince is shared

The current instance is https://krita-fund.carlschwan.eu/, I fixed tons of styling issues and adapted it to follow Krita Webdesign, it is currently integrated with a Braintree sandbox account but I didn't figure out yet how to link it with my PayPal sandbox account correctly.

You can log in with the normal identity credentials, and pay using the fake credit card: 4012000077777777 with an expiration date in the future.

and the remaining work that needs to be done:

  • fix the remaining theming issues
  • fix some incompatibility in the bootstrap 4 vs bootstrap 3 theme
  • come up with text for the about page: https://krita-fund.carlschwan.eu/about/ -> I would love if someone could take care of it
  • Decide what to do with the grant page: https://krita-fund.carlschwan.eu/grants/. Blender use it for displaying info about who gets the grant and transparency
  • Create a badge for Krita corporate sponsors
  • replace the reference to Blender with Krita ;) and add some credits to Blender in the footer

This is looking great @ognarb

Are we wanting to eventually replace our "Donation" area on krita.org with this?

If we have an About section, I wonder if that should be about the development fund...not krita in general. So it would have more information about the development fund and where the money is going. Like all the information on here... https://krita.org/en/support-us/donations/

Anways keep up the great work!

scottpetrovic updated the task description. (Show Details)

I updated the description of this ticket to try to figure out what remaining things we want to figure out or do before we launch this funding site. I think a lot of the development is really shaping up thanks to @ognarb - Thanks! A lot of the questions/discussion is how we want to organize the content, fit this into krita.org, the application, and flesh out the content more. I will try to present my ideas after I spend a bit of time thinking about these questions.

If there are other issues or things we need to think about, feel free to update the description.

I agree, this is really shaping up. Nice job and thanks for the hard work everybody. :)

have a developer amount to hire for goals? Do we need to tweak the numbers for how much our goals are from what Blender has?

I think the way it's presented right now, where the goal is shown both in terms of number of full-time developers as well as dollars, is good.
On the Blender fund, you have to view on the "About" page to understand where the money goes, and so ours might even be a slight improvement.

need to discuss if we want to have bigger higher level goals like "improve text tool", or smaller goals that people can vote on.

I'm kind of against this, I think, even though it might make for a decent incentive.

In my opinion, the fund would ideally be Krita's main source of recurring funding for regular development in general.
(Since it's generally better for the health of the project to have a steady and recurring income stream instead of one that relies mainly on bursts of donations and store revenue.)
In that context, I think if we start tying the development fund to specific, one-shot goals for individual deliverables it might muddy the water a bit, making it sound more like a kickstarter than an ongoing, general development fund.

Some kind of democratic system where we allow dev fund contributors to vote on what we prioritize at any given time could be cool, though!

Do we want to replace the normal one-time donation area?

For the same reason as the point above, it's probably a good idea to at least nudge people into joining the development fund at some level instead of making a one-time donation.
I don't know if we should get rid of the one-time donation page altogether, because it's probably best to give people as many contribution options as possible,
but I think that the first and most prominent way to contribute should be the development fund.

Blender seems to be dissuading people from using one time donations by putting that on their more hidden "Foundation" page https://www.blender.org/foundation/donation-payment/. Do we want to do that, or make the two options more clear on our existing donations page?

It really is hard to say...

On one hand, I think about the people who, for one reason or another, might absolutely refuse to join into a recurring fund.
If we make it hard on those people, then we might lose their contribution.

On the other hand, if we don't go out of way to gently nudge would-be contributors towards joining the development fund, then they may just opt for a one-time donation.
If we pull people in different directions, then we might lose out on people who would otherwise be willing to join the fund, and we lose out on their recurring contribution.

Again, in terms of funding stability, predictability and overall project health, a monthly contribution of $5, for example, is actually better than a once-a-year contribution of $60, imo.
So we really want to incentivize people to join the development fund while we have their attention.

rempt added a comment.Nov 17 2020, 1:27 PM

I got two links from the braintree people:

https://articles.braintreepayments.com/get-started/try-it-out

https://help.braintreepayments.com/

I've also found a screen that says "start your sandbox now", but I'm a buit lost after that.

rempt added a comment.Nov 17 2020, 1:32 PM

I think the way it's presented right now, where the goal is shown both in terms of number of full-time developers as well as dollars, is good.
On the Blender fund, you have to view on the "About" page to understand where the money goes, and so ours might even be a slight improvement.

Yes, I think we should go for "every 3000 euros funds a developer", but use our one-time donation monthly income as a kind of starter -- since that funds Dmitry.

need to discuss if we want to have bigger higher level goals like "improve text tool", or smaller goals that people can vote on.

In my opinion, the fund would ideally be Krita's main source of recurring funding for regular development in general.

Yes. I would prefer us to become less dependent on the store income, because you never know when MS will pull down their store, for instance. So, our goal is to have recurring income for regular development.

Some kind of democratic system where we allow dev fund contributors to vote on what we prioritize at any given time could be cool, though!

We could do that, of course.

Do we want to replace the normal one-time donation area?

For the same reason as the point above, it's probably a good idea to at least nudge people into joining the development fund at some level instead of making a one-time donation.

Not the after-download donation area: that is important to have as well, though we might want to boost the dev fund there, allowing people to quickly say thank your with a donation is important.

Again, in terms of funding stability, predictability and overall project health, a monthly contribution of $5, for example, is actually better than a once-a-year contribution of $60, imo.
So we really want to incentivize people to join the development fund while we have their attention.

Most people who give a one-off donation donate the default 10 euros.

Braintree integration to get payments working. Is there any development with this, or is this just configuration?

Currently, it is using my sandbox account. It shouldn't be difficult to switch to the production settings, but it will need some testing: https://invent.kde.org/websites/fund-krita-org/-/blob/master/blender_fund/_krita_settings.py#L22

any other features or functionality that is still WIP - question directed at @ognarb

I don't think so, I need to add some cron job but this should be a 5min job. There is also a bug in the mykde badger system that I need to fix on the mykde side.

Once we think it is good we probably need to test it out to make sure it is working before we even think about going live.

++ we need testing with the sandbox account and the real account. We need to make sure it works perfectly before going live.

how are we going to deal with translations for other countries? Either just show English...or just hide it on krita.org for other languages if it will be confusing

Or should be possible to add some translations but it will need quite a lot of work because most of the strings are not wrapped in i18n functions. But if someone has the time to wrap all the strings in i18n call, it should be fairly easy to then integrate it into KDE i18n system.

scottpetrovic added a comment.EditedNov 17 2020, 4:18 PM

@ognarb - for translating, I currently see a lot of PUG and HTML files that seem to be template files that Django uses for generating HTML. The translations are currently written like this...

{% trans 'History' %}

Do we just need to convert all those to another format like i18n('text to translate')?

This also brings up a good point of building this project locally. I was trying to build the repository here: https://invent.kde.org/websites/fund-krita-org
I ran into a few things we probably need to update. I can fork off yours and do things like update the readme with the information I find out. Things like updating the manage.py to point to the krita_fund.settings as well as updating a lot of other stuff that says "blender" in it. https://invent.kde.org/websites/fund-krita-org/-/blob/master/manage.py#L6

I definitely don't mind having a reference that this code is based off the blender repo, but we probably don't want to have a lot of our code still say blender in it as it will get confusing. I am not sure if there are good practices for this kind of hard forking. I imagine it might be best to do our own thing. If we make a fix or improvement, we could potentially try to send it upstream.

Actually, I didn't want to change any blender branding in the non-user facing stuff because it makes it really difficult to cherry-pick/merge stuff from upstream. And we do want to have an easy time with the maintenance instead of maintaining a completely diverging fork. Readme can be changed and resolving merge conflict on that won't be a problem but renaming files is already more difficult.

Concerning the translations, I oversimplified it. But by wrapping in i18n tag, I meant using {% trans %} in the template and i18n() or _() in the python code. If you look at https://invent.kde.org/websites/fund-krita-org/-/blob/master/templates-krita/ you will see that there is a lot of files without any {% trans %} tags. The PUG files aren't used anymore, since I preferred working with pure HTML instead of having an HTML generator.

scottpetrovic added a comment.EditedNov 18 2020, 1:30 PM

@ognarb - That makes sense. What I like to do with building instructions is get a fresh copy of something like Ubuntu and write down all the steps I needed to to do get it going. I can maybe start doing that. For now in terms of development/design work, I will just focus on trying to get it buiding and writing everything down.

If you have any points you would like to make it would probably be good to add them to the readme. For example I didn't even think about not changing all the blender stuff. It might be a good idea to add that type of information to the readme for anyone looking at this repository. Also if there is any other points or steps you went through to get it set up that would be helpful. Also points like Krita is not using the PUG files... That is something that would have taken me a little while to figure out after building it.

@ognarb, @rempt - I am looking at the braintree API stuff a bit and how to swap it out with production API keys so it will eventually work with fund.krita.org.
It looks like the three fields are listed here (maybe there is more)...

https://invent.kde.org/websites/fund-krita-org/-/blob/master/blender_fund/_krita_settings.py#L22

  • merchant ID
  • public key
  • private key

Boud will eventually need to provide these to hook it up to braintree. Based off an article...it sounds like we need to be careful with committing those key values to the source control for security reasons. Is there a way we can store the production credentials outside the repository and only use those when the site is being built @ognarb ? Like a prod app settings file?
https://articles.braintreepayments.com/control-panel/important-gateway-credentials#api-keys

I know at my job we use Rancher and do that with something called "Secrets" for production sites for this issue. Not sure if there is something similar set up on the KDE infrastructure.

@ognarb - That makes sense. What I like to do with building instructions is get a fresh copy of something like Ubuntu and write down all the steps I needed to to do get it going. I can maybe start doing that. For now in terms of development/design work, I will just focus on trying to get it buiding and writing everything down.

You will need a working instance of my-kde-org and the documentation can be found here: https://sysadmin-docs.kde.org/services/mykde.html and then you can follow the steps in https://invent.kde.org/websites/fund-krita-org readme to install the fund website.

If you have any points you would like to make it would probably be good to add them to the readme. For example I didn't even think about not changing all the blender stuff. It might be a good idea to add that type of information to the readme for anyone looking at this repository. Also if there is any other points or steps you went through to get it set up that would be helpful. Also points like Krita is not using the PUG files... That is something that would have taken me a little while to figure out after building it.

Good point, I will update the readme 🗡

@ognarb, @rempt - I am looking at the braintree API stuff a bit and how to swap it out with production API keys so it will eventually work with fund.krita.org.
It looks like the three fields are listed here (maybe there is more)...

https://invent.kde.org/websites/fund-krita-org/-/blob/master/blender_fund/_krita_settings.py#L22

  • merchant ID
  • public key
  • private key

the _krita_settings.py provides a sample setting for the application, the production settings are stored in krita_settings.py and are not part of the repository. The only change is that the Braintree, database and mykde configuration are filled out.

Boud will eventually need to provide these to hook it up to braintree. Based off an article...it sounds like we need to be careful with committing those key values to the source control for security reasons. Is there a way we can store the production credentials outside the repository and only use those when the site is being built @ognarb ? Like a prod app settings file?
https://articles.braintreepayments.com/control-panel/important-gateway-credentials#api-keys

I know at my job we use Rancher and do that with something called "Secrets" for production sites for this issue. Not sure if there is something similar set up on the KDE infrastructure.

We use Ansible in kde but I'm not very confident in my Ansible skills :(

@ognarb - Do you think it is a problem if the merchant ID, public and private keys are stored in the repo for everyone to see? I wonder if we have any options or something else if Ansible might be too tricky

@scottpetrovic Those shouldn't be in a public repository. Our usual preference for this is to store the secrets in a configuration file

@bcooksley - Would that be hard to set up for https://fund.krita.org/ I am not sure exactly how that site is building...or what needs to be modified to get it to work with a configuration file.

Once that is set up, @rempt can give his information to plug into it so we could start testing out the functionality on his Braintree account.

First the site/application will need to expect to load those details from the configuration file.
How are they expected to be provided at the moment?

First the site/application will need to expect to load those details from the configuration file.
How are they expected to be provided at the moment?

@ognarb - This question is probably for you.

emmetoneill added a comment.EditedDec 10 2020, 11:32 PM

I have some thoughts that are totally unrelated to the current task of setting up payment processing, but I'm going to drop them here if that's alright:

  1. It might be better to launch the "Corporate" funding tier a few months after the rest. Not only does this give us some time to make sure that that everything is working solidly, but it'll also be a good second chance to promote the dev fund sometime later in 2021. Finally, I think there might be different expectations that come with corporate funding, and putting a few months between the initial launch and the corporate tier launch will give us time to think about how we should approach receiving money from and working with corporate backers.
  2. Another idea that I had was to introduce a "Micro" funding tier, also sometime after the initial launch and maybe along with the corporate tier. This would be a totally no-perks funding tier for small dollar (let's say $1-3/mo) amounts that can only be charged yearly (at $12-36/yr, respectively), since otherwise the processing fees wouldn't make it worthwhile. The idea here is that there will always be some people who decide that they can't afford or don't want to participate in the first wave of funding (because of age or location or just not seeing the value in it), and introducing a micro tier a few months later might be a good opportunity to bring some of those people into the fold. Introducing it at a later date makes it unlikely that it will pull people away from supporting the upper tiers, I think, and like I said above it would also give us another good chance to talk publicly about the fund.
  3. These days many of our rivals have monthly subscription plans. I wonder if we should price some of our membership tiers in light of what their monthly subscriptions cost, or at least try to somehow make a comparison. (PS subscription plans.) (CSP subscription plans.) Another fundraising classic is to relate the monthly cost to the price of some everyday item (a latte, 3 packs of stroopwafels ;), 2 large pizzas, a new videogame, etc.) since it helps people to relate the amount to other things that they may even buy on an impulse, that's another thing to think about.
  4. I was thinking for the "Name" reward, we should consider including the list of named dev fund backers with the program source code in a BACKERS file that we can automatically update every month and also make viewable through Krita itself. We could even make a widget with a search field that people could use to look up their own name with a special thank you message and a link to the dev fund page at the bottom. On top of that, we could also do something cute like picking a few random names from the list each day or each time we load the welcome screen and inject them into a message that says "Thanks Jamie Jones, Susan Smith, Roger Rogers and many others for supporting the Krita Development Fund!" (Of course, this would mean we would have to scan the document for trolls and bad words, but it might be worth it!) That might be more enticing than having your name just be on a website, since users will spend a lot more time interacting with the program itself.

Some small page style points for @scottpetrovic:

  1. Is there any way to reduce some of the empty space around the blurb/meter section? I know the values are probably exactly the same, but Blender's dev fund home page somehow feels a bit cleaner and more compact than ours.
  2. I think that the small navbar above the blurb/meter looks a little bit out of place and I'm wondering if there is a way to integrate that better. Maybe sticking it to the top of the blurb/meter section?
  3. The main navbar at the top of the page looks like it isn't properly centered.
  4. Right now the small '?' help icon near the different rewards columns don't show anything.
  5. Finally, Blender's dev fund has the option of viewing the values in either USD or EUR towards the bottom of the page, should we do that too?

First the site/application will need to expect to load those details from the configuration file.
How are they expected to be provided at the moment?

@ognarb - This question is probably for you.

Sorry I missed your message. The best is to send me the identifiers by mail or DM. I can then put them on the server.

I have some thoughts that are totally unrelated to the current task of setting up payment processing, but I'm going to drop them here if that's alright:

  1. It might be better to launch the "Corporate" funding tier a few months after the rest. Not only does this give us some time to make sure that that everything is working solidly, but it'll also be a good second chance to promote the dev fund sometime later in 2021. Finally, I think there might be different expectations that come with corporate funding, and putting a few months between the initial launch and the corporate tier launch will give us time to think about how we should approach receiving money from and working with corporate backers.
  2. Another idea that I had was to introduce a "Micro" funding tier, also sometime after the initial launch and maybe along with the corporate tier. This would be a totally no-perks funding tier for small dollar (let's say $1-3/mo) amounts that can only be charged yearly (at $12-36/yr, respectively), since otherwise the processing fees wouldn't make it worthwhile. The idea here is that there will always be some people who decide that they can't afford or don't want to participate in the first wave of funding (because of age or location or just not seeing the value in it), and introducing a micro tier a few months later might be a good opportunity to bring some of those people into the fold. Introducing it at a later date makes it unlikely that it will pull people away from supporting the upper tiers, I think, and like I said above it would also give us another good chance to talk publicly about the fund.
  3. These days many of our rivals have monthly subscription plans. I wonder if we should price some of our membership tiers in light of what their monthly subscriptions cost, or at least try to somehow make a comparison. (PS subscription plans.) (CSP subscription plans.) Another fundraising classic is to relate the monthly cost to the price of some everyday item (a latte, 3 packs of stroopwafels ;), 2 large pizzas, a new videogame, etc.) since it helps people to relate the amount to other things that they may even buy on an impulse, that's another thing to think about.
  4. I was thinking for the "Name" reward, we should consider including the list of named dev fund backers with the program source code in a BACKERS file that we can automatically update every month and also make viewable through Krita itself. We could even make a widget with a search field that people could use to look up their own name with a special thank you message and a link to the dev fund page at the bottom. On top of that, we could also do something cute like picking a few random names from the list each day or each time we load the welcome screen and inject them into a message that says "Thanks Jamie Jones, Susan Smith, Roger Rogers and many others for supporting the Krita Development Fund!" (Of course, this would mean we would have to scan the document for trolls and bad words, but it might be worth it!) That might be more enticing than having your name just be on a website, since users will spend a lot more time interacting with the program itself.

    Some small page style points for @scottpetrovic:
  5. Is there any way to reduce some of the empty space around the blurb/meter section? I know the values are probably exactly the same, but Blender's dev fund home page somehow feels a bit cleaner and more compact than ours.

Fixed :D also polished the front page a bit more

  1. I think that the small navbar above the blurb/meter looks a little bit out of place and I'm wondering if there is a way to integrate that better. Maybe sticking it to the top of the blurb/meter section?

It would probably make sense to replace the content of the main navbar with the small navbar. Two navigations is confusing.

  1. The main navbar at the top of the page looks like it isn't properly centered.

Hmm, I verified with KRuler and it looks correct to me.

  1. Right now the small '?' help icon near the different rewards columns don't show anything.

fixed

  1. Finally, Blender's dev fund has the option of viewing the values in either USD or EUR towards the bottom of the page, should we do that too?

We can do that.

rempt added a comment.Dec 11 2020, 2:03 PM
  1. It might be better to launch the "Corporate" funding tier a few months after the rest.

I agree

  1. Another idea that I had was to introduce a "Micro" funding tier, also sometime after the initial launch and maybe along with the corporate tier.

That could work, but in fact, with mollie and paypal even $1 recurring donations are worthwhile enough.

  1. These days many of our rivals have monthly subscription plans. I wonder if we should price some of our membership tiers in light of what their monthly subscriptions cost, or at least try to somehow make a comparison.

That's an interesting idea :-)

  1. I was thinking for the "Name" reward, we should consider including the list of named dev fund backers with the program source code in a BACKERS file that we can automatically update every month and also make viewable through Krita itself.

That's also a good plan :-)

@rempt - If you get a chance, could you send a private message to @ognarb with your braintree stuff. He can try to hook it up so we can test out a live credentials.

Braintree variables:

  • merchant ID
  • public key
  • private key

Here are some instructions on how to get that if you aren't sure https://articles.braintreepayments.com/control-panel/important-gateway-credentials#api-keys

rempt added a comment.Jan 5 2021, 9:29 AM

Okay, I'll send mail :-)

emmetoneill added a comment.EditedJan 14 2021, 1:07 AM

@ognarb or @scottpetrovic I have a few more minor (low-priority) styling thoughts. :)

1.) There's a bit of unused space towards the top of the page (highlighted in red). Can we optimize this by cutting down on margins or even overlapping things a little bit?

2.) Whats the div in the upper-right for? Maybe we could combine that with one containing the blurb/meter in the center. Also, It might be a good idea to strip the date out of it since the fund will be an ongoing thing.

3.) I think the .text-center headers in the memberships section would look a bit better without the underline.

4.) Can we center or justify the list items inside the .memberships container? (I know things like that can be a bit finicky in css sometimes...)

@rempt We also need to update the content of our about page.
What we have is a solid starting point, but it's out of date and not really dev fund specific.

I think we should cover at least these points:

  1. Mission: What Krita is and why it's worth funding. [~3-5 sentences?]
    • Free, open source and community-driven tool for drawing, painting and animation.
    • Flexible and inclusive. Without the typical technical borders or socioeconomic barriers of our rivals.
    • Funding is an investment in the future of creative tools for artists everywhere. (As opposed to a transaction.)
  2. Funding and Transparency: Where the money goes. [~6-12 sentences?]
    • Krita's history and foundation as an independent, non-profit. open source, community-driven project.
    • Establishing a core development team of full-time software engineers. (Often drawn directly from the community.)
    • Goes directly towards building a Krita that's more powerful and stable, with more features and better workflow for artists of every level.
    • Funding goal of X developers at combined Y eur/usd per month. (10 developers at 30k eur/mo, or what have you.)
    • Surplus funding can be used to: commission professional works from community artists, fund collaborative open content projects made with Krita, fund part-time development projects, upgrade development equipment and community infrastructure, be forwarded to other related open source projects (digimend, gmic, etc.), further improve developer rates, etc.
    • We will be transparent about the cash that comes into the development fund, and how we are using it to the benefit of the Krita community.
  3. Membership: What it means to become a member. [~3-6 sentences?]
    • A variety of membership tiers of recurring (monthly or yearly) donations.
    • Progressive rewards for backers, including a community badge, their name (or organization) immortalized in Krita's source code (with the possibility of being thanked on the welcome screen), their name (or organization) prominently displayed on the dev fund page, the ability to link to a url of their choice, maybe participate in polls/votes?, etc.
    • Become an investor in a better and more inclusive future for digital artists everywhere!

Anyway, it's getting late and I'm starting to run out of juice. What do you think of this rough outline?
I think if we hit some of those points we can make a clear and compelling argument for why people should support Krita by joining the development fund. :)

I think Blender's about page is also a good reference.

(Also, we might want to write things in such a way that it's somewhat "future proof", in a sense that we don't have to manually update it every year.)

@ognarb or @scottpetrovic I have a few more minor (low-priority) styling thoughts. :)

1.) There's a bit of unused space towards the top of the page (highlighted in red). Can we optimize this by cutting down on margins or even overlapping things a little bit?

2.) Whats the div in the upper-right for? Maybe we could combine that with one containing the blurb/meter in the center. Also, It might be a good idea to strip the date out of it since the fund will be an ongoing thing.

3.) I think the .text-center headers in the memberships section would look a bit better without the underline.

4.) Can we center or justify the list items inside the .memberships container? (I know things like that can be a bit finicky in css sometimes...)

the CSS for the homepage is a bit of mess. I tried to merge the bootstrap4 design from fund.blender.kde with the bootstrap3 them from krita.org and it's really messy. I probably will try tomorrow or tonight to rewrite that in a bootstrap4 only way even if it differs a bit from the krita.org theme (actually it could even serve as a base for a graphical update in krita.org).

On top of that, we could also do something cute like picking a few random names from the list each day or each time we load the welcome screen and inject them into a message that says "Thanks Jamie Jones, Susan Smith, Roger Rogers and many others for supporting the Krita Development Fund!" (Of course, this would mean we would have to scan the document for trolls and bad words, but it might be worth it!) That might be more enticing than having your name just be on a website, since users will spend a lot more time interacting with the program itself.

Here's a rough mockup of what I have in mind for the welcome page.
A few member names pulled at random from either a BACKERS file or scraped from the web, the current total number of members, and a link to the dev fund.
(I didn't bother making the style totally consistent, but you get the point.)
What do you think @scottpetrovic?

the CSS for the homepage is a bit of mess. I tried to merge the bootstrap4 design from fund.blender.kde with the bootstrap3 them from krita.org and it's really messy. I probably will try tomorrow or tonight to rewrite that in a bootstrap4 only way even if it differs a bit from the krita.org theme (actually it could even serve as a base for a graphical update in krita.org).

Ok, no worries! :)

Progress report :)

  • The production settings for Braintree are working (my small 5€ donation was successful)
  • I merged all the changes from the last few months upstream in our project. They moved the payment system to a separate and reusable system so that the part we need to maintain is significantly smaller :)
  • I enabled the production crontabs
  • During the merge there were some small regressions, I think I fixed most of them and the only remaining is that the monthly contribution bubble in the homepage is empty. I will try to investigate tomorrow.
  • Another small bugs is that the badge don't get synchronized to MyKDE :( This is caused by a bug in MyKDE that I didn't bother to fix because until now there were no users for this specific API. I will also try to fix it tomorrow.

Other than that, I think the system is ready, but it would be nice if others could try it and see if there s/Blender/Krita is correct and we don't have some places still mentioning Blender.

@ognarb - Great!

I will try to spend a bit of time and play around with it. I did notice I am getting a weird technical issue when clicking this link by the payment options.

Also, I wonder if there is any way to customize error messages. For example my card was declined, but the error is kind of confusing. It just says "Error from the payment: Do Not Honor". Is there any way to customize this page. For example a small blurb about what to do if there are issues.

I fixed the homepage and it now shows again how much donations we get each month and fixed a few more issues in the settings.

Also, I wonder if there is any way to customize error messages. For example, my card was declined, but the error is kind of confusing. It just says "Error from the payment: Do Not Honor". Is there any way to customize this page. For example a small blurb about what to do if there are issues.

this error message is very weird, I hope I didn't break the payment system when merging the changes from upstream. I will need to try again tomorrow probably with a sandbox account to not get poor too fast ;) Putting it into a box could be a good idea but ultimately the payments should just work :)

emmetoneill added a comment.EditedMar 24 2021, 1:24 AM

@ognarb Great work!

How is the "bank transfer" payment option supposed to work if payments can't be made automatically?

I tested it out and it seems to just give you a membership and expect you to send a bank transfer later.
But what happens if I never make the transfer or if I stop making transfers after a while?
Will we have to keep track of payments from members who use this method and activate/deactivate their memberships manually?

There are also some minor theming issues on the "thank you" page (at least the one after picking the bank transfer option).
The transfer details are white text on a white background, and the "once your membership is activated" text lower down is also light on white.
Also, the header that says "Tax Deductible" should probably say "Tax Information" or something along those lines, since contributions to Krita aren't tax deductible.

I've also gone ahead and signed up for a second membership using my visa debit card.

Everything seems to have worked without issue and looks pretty good!

(Some minor theming issues again, like the "manage memberships" link being inline with the membership tier text, but no big deal. I like the fireworks! :D)

When I click on the "manage memberships" link I can see that I now have two memberships: 1 active one (the visa card one) and 1 inactive one (the bank transfer one that I haven't followed through on).

I haven't seen any mentions of blender anywhere ;)

We're getting there!

Oh, and I had another idea *that isn't too crucial right now but might be something to consider launching later*--gifted memberships!

The idea would be that I could sign up (and pay) for a dev fund membership on a friend's behalf, and that friend could be sent an email every few months letting them know.
Good idea? Annoying idea? Possible? Impossible? ;P

How is the "bank transfer" payment option supposed to work if payments can't be made automatically?

yes it expects manual intervention (maybe Blender has a script to do it automatically from their bank api). We probably should just disable it for monthly payment so that it doesn't create a too big administrative overhead for us.

There are also some minor theming issues on the "thank you" page (at least the one after picking the bank transfer option).

Thanks I think I fixed all the issues :)

I've also gone ahead and signed up for a second membership using my visa debit card.

This is great to hear. I fixed the small issue you saw.

Oh, and I had another idea *that isn't too crucial right now but might be something to consider launching later*--gifted memberships!

I think this is a good idea that, but it might be a bit complex to implement without changing too much stuff inside the system and shouldn't be a priority for now. As always the more changes we make to the original blender system that are not just cosmetic changes, the harder it will be for us to maintain in the long run.

There was some feedback about fund.krita.org on Krita-artists.org. One feedback was that there is still one blender logo in the list.

There was some feedback about fund.krita.org on Krita-artists.org. One feedback was that there is still one blender logo in the list.

yeah, the corporate logo is still using the Blender logo. I'm not an artist, could someone try to make a new one? :)

speaking of the corporate, the link was dead and I just fixed it. We probably still need new text for it.

Another strange I see is that the homepage displays 5 contributors when there is only 2 who donated money and 3 who choosed the bank transfer. I will look into fixing this tomorrow.

I'm currently getting an error:

Internal Server Error

There was an error handling your request. The error has been logged and we'll try and fix it as soon as possible.

If the error keeps occurring, please contact carl@carlschwan.eu.
Technical details

The exception was of type FieldError and said Cannot resolve keyword 'status' into field. Choices are: bid_badge_name, category, details_html, id, image, is_popular, is_visible, membership, name, order, plan, plan_id, visible_attributes.

I'm also not really managing to find where I can update the about krita page?

I'm currently getting an error:

Internal Server Error

There was an error handling your request. The error has been logged and we'll try and fix it as soon as possible.

If the error keeps occurring, please contact carl@carlschwan.eu.
Technical details

The exception was of type FieldError and said Cannot resolve keyword 'status' into field. Choices are: bid_badge_name, category, details_html, id, image, is_popular, is_visible, membership, name, order, plan, plan_id, visible_attributes.

Yeah, sorry I was trying to fix the homepage contributors count that counts inactive contributors. And this seems to be a bit more tricky than I imagined, for the moment I reverted my local changes.

I'm also not really managing to find where I can update the about krita page?

This can be edited in https://fund.krita.org/cms/

rempt added a comment.Mar 26 2021, 1:29 PM

This can be edited in https://fund.krita.org/cms/

Which account do I use for this? I don't seem to be able to login with my mykde username or email / password

This can be edited in https://fund.krita.org/cms/

Which account do I use for this? I don't seem to be able to login with my mykde username or email / password

This is interesting, I didn't know about this custom authentication form. It is currently doing nothing so I should probably remove it.

The correct login link is https://fund.krita.org/oauth/login and should be available from the homepage. Can you ping me once you logged into the system so that I can give you admin rights? :)

rempt added a comment.Mar 26 2021, 4:16 PM

Yes, I managed to login!

I fixed the login form in https://fund.krita.org/cms/ :)

rempt added a comment.Mar 27 2021, 3:09 PM

Weird, with firefox, it says "The page isn’t redirecting properly" now -- chromium seems to get redirected.

rempt added a comment.Mar 27 2021, 3:10 PM

Ah, no, chromium also says, after logging in:

This page isn’t workingfund.krita.org redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS

The redirect issues should be fixed now. I also added a corporate badge to the landing page.

Additionally, now the badger service now works and the badge appears on the mykde profile: e.g. https://my.kde.org/user/carlschwan/

rempt added a comment.Mar 31 2021, 8:25 AM

Thanks! I've started working on the CMS pages.

rempt added a comment.Apr 7 2021, 12:45 PM
  • I'd like to have Corporate Memberships and One Time Donations also in the toplevel bar.
rempt added a comment.Apr 7 2021, 1:55 PM

https://fund.krita.org/grants/ -- I've filled this in, but I need some more spice, so if you worked in a given year on something cool, leave a note here.

Deevad added a subscriber: Deevad.Apr 7 2021, 2:08 PM

(IRC) <halla> it's a bit boring because I couldn't remember what specific projects we did when, so if anyone wants to help, please add notes for me here:

@rempt : I got one 🙂 :

2018: David Revoy was sponsored to refactor the default brushes presets for Krita 4.

Halla Rempt was sponsored in the second half of 2016 to improve the

looks like the rest of the sentence is missing

@rempt You can also add:

2012:
You can add my name in the list of people who were sponsored by KO GmbH to work on Krita Sketch

2015:
Timothee Giet was sponsored to work on the training DVD "Secrets of Krita"

2017:
Timothee Giet was sponsored to work on the training Videos "Animate with Krita"

2021:
Timothee Giet was sponsored to work on new icons

rempt added a comment.Apr 8 2021, 11:24 AM

Thanks, added!

Improvements for today:

  • Fixed the cronjobs and add my mail in the config so that I get notified
  • Fixed sending mails
  • Removed some reference to Blender Fund when sending mails
  • Made some improvements to the homepage, most notably made the text in the circles bigger and bolder and made the credit session only appear if we have people to credit :)

I wanted to add the number of donations from the old system to fund.krita.org but I'm wondering if @scottpetrovic could provide me a hidden page in krita.org (e.g. krita.org/donation/amount) that include the amount as a json or plain text. I could parse it from krita.org homepage but since we want at some point to link to the new system, this won't work.

Oh and also another good news. I can confirm that recurring payments are working, I got a notification on my bank account :)

@ognarb - I created a REST endpoint that is public...so you can just call it to get the JSON data. It has an array with each donation in it. you can get a count on the number of donation people and loop through each donation to tally up the amount. That is currently how krita.org is doing it.

https://krita.org/wp-json/mollie/donations/v1/all

Hopefully this works out.

Thanks, I'm wondering if you could aggregate the data before sending them? I'm a bit uncomfortable with publicly displaying when exactly a donation was made and how big the donation.

@ognarb - Just updated the SQL with your suggestion. I think this is what you are looking for. Let me know if it needs to change. You can use the same end point

https://krita.org/wp-json/mollie/donations/v1/all

it's perfect, thanks :)

Ok this is now implemented and the requests is cached for one hour so this should not have any performance impact :)

The dev fund is now officially live. I think on the krita.org side, we should:

  • prominently mention and link to the dev fund on the donate page, but keep the one-time donation box intact
  • do the same on the after-download page
ognarb added a comment.EditedJun 2 2021, 12:57 PM

@scottpetrovic is there a way to instead of getting from mollie the donation from the last month, to get the donations from the last 30 days? or from the previous month? Otherwise, the amount of the donation in fund.krita.org will vary a lot depending on if we are at the end of the month or at the beginning of the month.

I temporarily fixed that by showing a hardcoded value from what I remembered from a few days ago.

@ognarb - I am sure we can. I will have to look at the SQL to see how we want to change it. What do we want the rule to be. Just the past 30 days?

ognarb added a comment.Jun 2 2021, 3:06 PM

@ognarb - I am sure we can. I will have to look at the SQL to see how we want to change it. What do we want the rule to be. Just the past 30 days?

The past 30 days would probably be the best. Not sure how the code is but this could be done with in SQL with WHERE datetime BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE() (replacing datetime by the actual name of the column in the database)

In other news, I merged all the changes from upstream today, and we switched from django 2 to django 3 :)

@ognarb - Does this look about right? https://krita.org/wp-json/mollie/donations/v1/all

I ended up doing a bit of internet searching to end up at this query...

SELECT COUNT(amount) as count, SUM(amount) as donations FROM wp_mollie_forms_payments WHERE payment_status = 'paid' AND created_at BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE()

Thanks this looks perfect. I updated fund.krita.org to use it again.

scottpetrovic closed this task as Resolved.Jul 20 2021, 3:24 PM

The new site is launched now which is great! Any future changes or enhancements can have a new ticket.