Opinion My take on a new approach to TYPO3 extension funding
TYPO3 already has many core extensions and features. However, the key to unlocking its full potential lies in the development and support of community extensions. Therefore, I would like to discuss a new approach to funding these community maintained TYPO3 extensions.
The current situation
The major version V12 of TYPO3 has been released a few weeks ago, and just like the release of V11 two years ago, there are many community extensions offering "early access" to the new major version. In most cases, this means that you can donate a certain minimum amount to the author or company of that extension to get access to the current development version of that extension, which (should) already work for the new major version except for a few remaining bugs here an there.
And that, in my opinion, is a valid approach to funding the continued development of an already large and successful community extension.
But if you're a developer who likes to code useful extensions for the community on the side, or you're planning to add features to an already popular extension, you probably won't earn anything right now.
With the exception of the Verified Extension Program, which I will describe below, "early access" is not regulated or follows specific rules. So every agency or developer can make their own rules, which can lead to very different views on what's considered "early access". This can be a real bummer when you're in the middle of planning your next site upgrade, and you can't rely on these "early access" extensions. One problem I had was to evaluate if an extension we had "early access" to would work with PHP 8.0+ in the next months or not. Unfortunately, some particular extensions took almost 2 years for that and we had to patch it ourselves.
Since November 2021, TYPO3 offers the verified extension program, which forces extension developers to support the extension for at least 1.5 years and to provide a stable release at launch of the upcoming major TYPO3 version. This is great for people or agencies who want to know how long this extension will provide updates and don't have to worry about showstoppers when upgrading their TYPO3 version.
But from a developer's point of view, it's just more work, and except for customers who pay for extra support after regular updates, there are still very few ways to make money from it.
To be clear: I like the idea of having verified extensions, which all follow certain rules and regulations, but if you are going to start offering such programs, there should also be a better and more structured answer for extension funding.
My approach to extension funding
If you go to the homepage of this site or read my LinkedIn profile, you'll see that I'm not only working with TYPO3. I'm in touch with it and the community almost exclusively through my work. However, in my spare time I like to try and learn new stacks and frameworks such as the TALL-Stack, which stands for TailwindCSS, AlpineJS, Laravel and Livewire. Since 2019 I have been building and maintaining the recipe website recipe-box.de. It started with a simple Laravel CRUD app and has been migrated to the Statamic CMS since 2022.
When I first tried Statamic, I was surprised at how they handled this problem, and now that I know more about the CMS and its community, I wanted to share their solution and how TYPO3 could take a cue from it.
How Statamic handles it
Just like TYPO3, Statamic offers extensions, which are called "addons" but are basically the same thing.
There are free extensions and paid extensions. Many of the extensions are completely free, e.g. to add some small features that are not included in the core. But just like in the TYPO3 world, there are also larger extensions with a large set of features and configurations. Typically these are paid extensions and here's where it gets interesting:
Every paid extension is still open source. So there's no closed source code which I really appreciate. You can even install and test it locally without having to pay anything. However, if you want to install and use it in production, you need to purchase a license from the official Statamic marketplace.
Each license comes with a license key that you can add to your project. The Statamic core itself provides the validation process by checking the key against the official license server. You can check and manage all license keys in the Statamic backend and it's the same procedure for every paid extension.
I really like this approach because it keeps everything regulated and at the same time you don't lose the community and open source aspect where other developers can review the code, open issues / pull requests and so on, yet the author or company behind the extension has a structured and supported way from the CMS to fund their extension development.
But what about the security aspect?
For this system to work, the CMS core would have to "call home" at some point to verify the license keys. I suspect that some or maybe even many people in the TYPO3 community will not like this because they see it as a "red flag" when it comes to privacy and potential tracking. And I can completely understand their reasoning behind that. If such a solution is being considered, it's important to discuss and talk about these potential issues openly.
I thought about it too, but in the end I came to the conclusion that such a system would work for TYPO3 as well, and the community developers would benefit greatly from it. It doesn't also have to be exactly the same system that Statamic has, and I'm sure that if the TYPO3 team would work on something like this together with the community, there would be a solution that would work for all of us.
I'm not at all an expert on which extension funding system would be the best for TYPO3, and implementing something like this will certainly raise some challenges. But I don't like the silence on this topic within TYPO3 and I feel that it still doesn't get the attention it needs. The TYPO3 ecosystem relies heavily on good extensions, and I think everyone knows that, but no one really wants to talk about how to ensure that developers get something back for their hard work, and how to encourage them and new developers to keep building something great. We live in challenging times and if you want good software, you should give something back.