pretix

pretix Community moves to AGPL-based license

April 12, 2021

How we got here

When I started working on pretix back in 2014, there was no way to predict the project's future. The idea for pretix was born while volunteering in an open source community, and it was the obvious choice to release pretix as an open source project, even though I already had plans to provide a commercial version to ensure long-term existence of the project.

One of the first steps when setting up an open source project is choosing a license. While I initially decided on the AGPLv3 license, I changed my mind a few months later and relicensed the project under the Apache License 2.0. The main reason was additional flexibility in developing a business model with a minimum amount of legal hassle around licensing issues.

Six years later, we feel it is time to revisit this decision and change our license again.

Creating a business model around pretix has so far undoubtedly been successful. Our income is a mixture of different ways open source projects can generate revenue: Software as a Service, paid support, and paid features ("open core"). Instead of just me working on pretix as a side project, seven people currently make a living developing pretix and its surrounding ecosystem, providing support to pretix users, and running our infrastructure.

The open source community as a whole has been an amazing support to pretix in the last years. pretix would be nowhere close to where it is today without the love we received from all of you.

At the same time, the development of pretix is mostly performed by us as a company; the number and size of external code contributions is comparatively low. Not counting translations of the interface to other languages, 95 % of development work (counting either commits or current lines of code) is performed by people who are or have been paid to work on pretix. This isn't necessarily problematic, but it means the viability of our business model is not only vital to the survival of our business, but also the existence of pretix as an open source project.

With pretix gaining more features and popularity, it is regularly attracting actors interested in pretix in a way that is harmful to the future of pretix. We've repeatedly encountered companies trying to pass off pretix as their own work and sell it to their customers without any interest in contributing back to the open source community, and possibly in direct competition to us. So far, none of these have been really successful, but if this increases it could become a threat to the long-term development of pretix as an open source project.

Our goals in choosing a license model

In search for a new licensing model, we defined a few goals that our new licensing model should fulfill:

1. pretix will continue to use a FOSS license

Unlike other companies and projects faced with similar challenges, we've explicitly decided against using a non-free license such as the SSPL created by MongoDB or the BSL created by MariaDB. While we sympathize with their reasoning, it is important to us that pretix continues to be truly free and open source software by both the OSI definition and the Four Essential Freedoms of Free Software.

2. Nothing changes for the typical use case

The typical use case of pretix Community is a company, group, or person running an instance of pretix for one or more events organized by the same company, group, or person. While the legal framework changes, it is important to us that there are little to none practical changes for this use case.

Specifically, it should still be possible to use pretix this way without any costs. Furthermore, we still want to allow these users to make changes to pretix (either directly or through a plugin) without the need to publish these changes. This makes it feasible to integrate pretix with internal systems or tweak pretix for specific use cases.

3. Strong copyleft for everyone else

Everyone using and changing pretix in a different way should be bound to a strong copyleft requirement, i.e. all changes made to pretix (which includes all installed plugins) need to be made publicly available under a free license. This still allows for the providing of a service based on pretix to others, but it ensures that this is done in a way that benefits the open source community.

Our new license model

Starting today, all new code committed to pretix and all new releases will be covered by the new licenses. All releases already issued will of course stay available under their existing license.

The new model follows a multi-licensing approach. pretix is now available under three different licenses to choose from:

  • AGPLv3 with additional restrictions (such as not removing the "powered by pretix" note and not abusing our name) within the bounds of AGPL's section 7. This fulfills our first and third goal: pretix is available as free and open source software with a strong copyleft requirement.

  • AGPLv3 with the additional permission to use modified or combined versions without making the source code available as well as the same additional restrictions. This license is granted to everyone using pretix only for their own needs, therefore this fulfills our second goal of not breaking the typical use case.

  • pretix Enterprise license without any copyleft requirements, as part of a pretix Enterprise support subscription. This allows us to enable use cases not compatible with the first two licenses for our customers who support the development of pretix in monetary ways.

The exact terms of the first two licenses can be found in the LICENSE file on GitHub. The terms of the Enterprise license are available on request.

The main downside of this change is that in order to be able to offer this model, we need to retain an appropriate license for the full source code to ensure we're able to re-license it as part of pretix Enterprise contracts and for our SaaS offering. To do so, from now on we have to ask for a signed Contributor License Agreement (CLA) for all code contributions granting us the right to do so. We've worked with our lawyers to make this CLA short, easy to read, and fair. We're still sad to add this barrier to the contribution process, but we do not see a viable alternative.

The future

We see this change as a renewal and reinforcement of our commitment to an open source development model. While we will continue to sell some non-free additional plugins, we believe that the open source edition of pretix is the most advanced open source solution for event ticketing, and it's here to stay and grow. pretix Community has and will continue to have all essential features to run various types of events.

This license change will make it easier for us to decide to put new features into the open source edition instead of moving them to a paid plugin. We will deliver on that promise by releasing a version 4.0 of pretix in the next couple of months featuring a number of new large-scale features. We will also continue to develop pretix transparently and with the option for everyone to participate.

We've worked hard to figure this out and believe we have found a way to enable almost everyone to keep using pretix exactly as before. If you feel you are impacted by this change in a bad way, please reach out to us to talk about possible solutions.

A new license FAQ in our documentation provides more detail on some possible questions around this, especially regarding the licensing of plugins. The next version of pretix will also include tools to automatically check the license of installed plugins and warn about evident problems.

If you have any further questions, please reach out to us at support@pretix.eu.

Links

Raphael Michel

Raphael is the founder and main developer of pretix. He is passionate about user-friendly, elegant software, and when he's not busy building software for conference organizers, he enjoys co-organizing con­fer­en­ces himself.

Read more blog posts