A few weeks ago, the Krita project announced the Krita Dev Fund. This project scope was the same as the Blender Dev Fund. Provide a stable way to fund

Tech report of fund.krita.org

submited by
Style Pass
2021-05-26 02:00:07

A few weeks ago, the Krita project announced the Krita Dev Fund. This project scope was the same as the Blender Dev Fund. Provide a stable way to fund the development of Krita via recurring donations.

Since I was the one who helped with the technical bits on the website and I heard that were are interested FOSS communities that want to deploy something similar, I decided to write a small tech report about how we did it in Krita.

Luckily for us, when we started researching how to create something similar, we rapidly discovered that the Blender Fund website itself is open source and licensed under the same license as Blender: GPL. It made it easy to reuse the code.

The system is written with Django for the backend and uses Braintree as a payment provider. The code was built with Blender need in mind and not as a reusable project that I could use without any change, so a fork was inevitable. To make the maintenance more manageable, I decided to try to stay as near as possible to upstream in our Python code so that it’s easy to rebase the Krita fork when needed.

Blender Fund is using its own authentification system (Blender ID) using OAuth2. To connect to Blender Id, a separate Django module for authentification exists (blender-id-oauth-client). This could be replaced by a custom implementation using default Django auth module or one of the many third-party Django ready-to-use authentification modules. In the case of Krita I just used blender-id-oauth-client with a few oauth2 parameters changed.

Leave a Comment