Sustainable licensing at Element with AGPL
As you know, Element’s commitment to the growth of Matrix, both as an open standard protocol and a genuine open source project, is unquestionable, and we’re proud to continue powering the development of Matrix 2.0 via our contributions to the various projects.
Since announcing our shift to use the Affero GNU Public License (AGPLv3) for the development of the Synapse Matrix homeserver and related projects in December 2023, we’ve kept up the same 2-week release cadence for Synapse as we’ve had since 2016, with 18 releases now under AGPL (with as many external contributions as ever) – covering all the prep work for Matrix 2.0, including all the foundations for Native Sliding Sync and Native OIDC. Meanwhile, Matrix keeps thriving and growing, and Element has found a niche building critical public sector Matrix deployments as a path to funding underlying Matrix dev.
As we’ve highlighted before, we’ve chosen to switch our development to AGPL now that the wide scale public sector use of Matrix has attracted the attention of huge system integrators and similar. AGPL ensures that as they create, sell and profit from professionalised Matrix-based solutions – with all the corporate bells and whistles – they also help fund the future development of Matrix. This is either by contributing their changes back to the project as open source, or by buying an AGPL-alternative licence from Element.
AGPL also, of course, protects those that simply want to use Element’s FOSS Matrix implementations; they are free (in all meanings of the word) to use and develop on top, providing it is not customised in a proprietary manner.
At the time, we held off on making the shift for other projects as we wanted to learn from the community feedback and process with Synapse, and discuss further with the various downstreams. However, we’re now at the point where we can finalise the move to AGPL - so please be aware that in the near future, we will be moving our development of the following remaining backend projects to the element-hq GitHub org, under the terms of AGPLv3:
- sygnal and sydent
- matrix-authentication-service
- sliding-sync proxy
- lb and lb-android
- dendrite and gomatrixserverlib
- any remaining synapse modules
We have also decided to switch licence for Element’s client apps too: Element Web/Desktop/iOS/Android, Element X iOS/Android and Element Call will be AGPLv3 going forwards. Element Web/Desktop will also be available under GPLv3 (to avoid causing problems for end-users who cannot install AGPL software on their corporate workstations; the unusual AGPLv3+GPLv3 dual licence here is to fulfil some prior customer commitments).
Much as for the backend projects, the reason is to encourage the ever-growing set of proprietary downstream forks to either contribute their code improvements to the projects, or to support our underlying development costs by procuring a licence if needed - as otherwise neither Element nor its contributions to Matrix will be sustainable. Forks who open source their changes (e.g. SchildiChat) are of course not affected.
This does not impact the client SDKs which underpin these apps: matrix-rust-sdk, matrix-js-sdk, matrix-ios-sdk and matrix-android-sdk2, which will remain as Apache 2.0 projects in the matrix-org GitHub org in order to continue to drive Matrix uptake as generously as possible - see The Matrix.org Foundation’s “Heart of Matrix” blog post for more context. The only exception is matrix-react-sdk, which despite the name is in fact the Element Web codebase, and is not used by any other app to our knowledge - and so its development will shortly move to the element-hq GitHub org and continue as AGPLv3.
Just as for Synapse, contributors will need to sign our CLA (which is automated in GitHub) in order to grant Element the right to sell proprietary licenses to those who need them - which is the whole point of the licence shift in the first place. The CLA however does explicitly include a clause to commit Element to continue to distribute contributions under an OSI-compatible FOSS licence (e.g. AGPL).
This marks the end of the planned licensing changes outlined at the end of 2023. In practice, users should not have to do anything (other than feel joy as Element development accelerates thanks to increased code contributions or improved financial support). The only folks impacted are those building a proprietary fork - in which case, please contact licensing@element.io to arrange an alternative licence which suits your needs and simultaneously supports the underlying development work that your project depends on.