Skip to main content

Generating sustainable development funding for phpstan-drupal

Published on

ANNOUNCEMENT: Florida DrupalCamp is funding D9, and PHP 8 support for phpstan-drupal

Three days ago, I announced that drupal-check and phpstan-drupal would have their development halted indefinitely until I can sort out some funding for those projects. Since then, I have received some additional sponsors through GitHub Sponsors. 

I want to thank undpaul for being the first organization to sponsor my time. They signed up for the $100/mo Organization tier, securing one full hour of development a month. My appreciation also goes out to nattedborisson, and saidatom for joining as personal sponsors. I am beyond grateful that you are using personal funds to ensure these projects continue.

On Sunday, I had $62 a month (40 minutes) in funding. I am now at $177.00 a month. That's a $115 increase and brings the available development time to an hour and ten minutes.

I created an Open Collective on Sunday. It had been awaiting approval from the fiscal host, Open Source Collective, and was approved today. Suppose GitHub Sponsors isn't a viable solution, especially for fundraising on specific features. Maybe this will be the solution.

The big problem is finding a value to offer sponsors. I plan to highlight organization sponsors on the README of the projects and each sponsor within release notes.

Providing value and a way to generate sustainable funding

I think this is a common problem with open source and a reason why funding is hard. It's hard to give out money "because it's the right thing to do." There needs to be some service or licensing fee. Our current development ecosystem doesn't support licensed releases. So the most often approach is software as a service offering.

Ideally, I would like to offer some productized version of drupal-check for agencies or developers. But, as I said, it's a bit difficult when you can easily plug it into your existing CI builds. 

One idea I had was an integration service that takes your code and turns on every single module, and then runs Upgrade Status.

  • It would run whenever code is committed to catching newly added code that implements deprecated code, deprecated hooks, or deprecated libraries.
  • When a dependency has a new release, run a job against it to see if it would add new deprecation warnings.
  • It would support repositories hosted on GitHub, Bitbucket, and GitLab. But also projects that have their repository only with their host, like Pantheon.

This would ensure code bases have full deprecated code coverage. It would be a complimentary continuous integration check added. 

A service like this would fund phpstan-drupal, allow me to contribute to Upgrade Status, and increase my own sponsorship of Ondřej Mirtes to develop PHPStan. 

Let's say this became a product and assume it was $5/mo per repository on GitHub, GitLab(.com), Bitbucket. Is that something that you or your agency would be interest in?

An alternative would be building a Composer package endpoint that acted as an optional source but added licensing capabilities. A major gap in funding in our current ecosystem. This is something I proposed in my blog post on solving open source funding through gated releases.