@tdeekens avatar
tdeekens / posts / three-years-of-sustaining-open-source-through-our-donation-program

Three years of sustaining Open Source through our donation program

The last three years we continuously supported Open Source projects we depend on through an initiative we internally call the Open Source donation program. From its inception until the end of 2023 we will have donated 12.000$ to 24 projects. This blog post shared the story of why and how we created the Open Source donation program and where we see its future.

The reasoning

We have always supported our engineering department to engage in Open Source projects. As a result employees have built and maintained quite successful Open Source projects like sangria, cornichon or flopflip. We have continuously evolved them, adopted them internally while also other companies started using them. In the summer of 2020 however we discussed that we wanted to do more and start to donate to Open Source projects.

You may wonder why we wanted to donate in Open Source and what we expected in return. As almost all businesses we build our products on numerous stable Open Source projects. We as a company benefit a lot from software which is freely available. These projects are mostly built and maintained by volunteers during their free time without any compensation, leaving projects underfunded and maintainers often burned out. We want to recognize the impact of these projects and support maintainers financially. We certainly do not expect any influence or say in the direction of any project in return.

The ideation phase

As a start and part of commercetools trying to give back to Open Source we set out to donate 1000 EUR per quarter - so 4000 EUR per year to elected projects. We wanted to make the election of projects a democratic but equally distributed process across all disciplines of our engineering department. As a result we opened a poll accessible to anybody working or contributing to the engineering department. Anybody from Scala Backend Engineers, Frontend Engineers, Test Automation Engineers, UX/UI Designers or Product Managers were empowered to suggest or vote for projects.

Additionally we didn't want to put up strict requirements on the project. However, we suggested focusing on projects which are in need of funding and not company backed. We assumed we could use most sponsoring mechanisms as long as the project has it outlined through what channels (e.g. GitHub Sponsors or PayPal) it prefers to receive donations.

To provide some guidance to anybody who wanted to put up a project or just vote we gave the following food for thought:

  1. What is essential to our product but is rarely in the spotlight?
  2. Try to think of a project which we have not donated to
  3. What new project last year was a great idea and could go further?
  4. Which person should just be able to allocate time to improve a project for the better

Without further ado we set up a poll and hoped for mighty responses.

The first donations made its way

Our first poll in 2021 was well received and suggested around 20 projects with around 30 votes among them. It however was slightly skewed towards the Frontend discipline in our engineering department. We still wanted to live up to our goal to donate any impactful project within our organization. As a result we bucketed the projects into the disciplines of Frontend, Backend and Site Reliability and chose two to three projects from each group to balance the donations. Additionally we confirmed that selected projects were able to receive a donation via PayPal, an OpenCollective or GitHub Sponsors. Finally we ended up at our first donation targets being Vale, MSW, TypeLevel Cats, Emotion, Let's Encrypt, Rollup, lint-staged and Scala.

Time for some initial reflections

In the first round of donation we also had our learnings we want to share for anybody wanting to follow in our footsteps. What has struck us as an unexpected challenge as the organizers of the initiative is the complexities in donating from a financial perspective.

Firstly it needs to be defined what cost center donations can be pulled from. In our case it was not our tech budget but rather employer branding. While using GitHub Sponsors uses the credit card put in GitHub which is your engineering department's card, you might struggle to donate through it as a result, or at least forward the cost internally through the respective cost center.

Secondly, you will always need an invoice when donating. The invoice is important for internal bookkeeping. Wherever you donate money through a transfer using for instance PayPal an invoice is not given. It is highly recommended to contact the recipient of the donation before donating if an invoice can be provided.

Lastly, some small projects just like larger projects were not prepared to take donations. As a result we reached out to them and helped them set up an Open Collective or similar. This has shown impactful as others were able to now donate to these projects.

Continuing the second and third year

As we learned from our first round of donations we were determined to move into a second and hopefully third round of donations. This is when we realized we wanted to make it a regular process and not a one-off action. We liked our internal process with a democratic vote on projects and set it up similarly. At the same time we wanted to widen the audience of donation recipients. To do so we simply reminded people what projects had already received a donation and encouraged them to think of different ones.

In 2022 we again had around 20 projects which were suggested to receive a donation but already around 50 votes on them. Resulting in Prettier, pytest, ScalaMeta and Logback, Yarn, Typelevel Cats, K9s and Jest. We took our lessons in the internal process to handle the donations and everything ran more smoothly than the year before.

By the end of 2022 we already planned for 2023 knowing that the economic circumstances might restrict our ability to make donations. Still we managed to secure the same budget as the years before and plan to donate to eight projects again. By now we donated to neovim and pnpm and will work our way through our list of these years projects having received the highest number of votes.

Looking forward

The last three years of organizing to support Open Source financially has been a huge joy and learning for all of us. From its complexities around cost allocation or being able to donate to projects we wanted to donate to. Overall, the support, involvement and gratification from anybody has been hugely motivating.

Personally, I enjoyed being able to donate to a broad range of projects and involving many in the decision to find those. Instead of focussing the donation on a few already large and well known foundations. Our ecosystem beatles through small projects just as much as it does through the larger ones and none should be neglected when thinking about financial support.