title: The fundamentals of the AGPLv3
url: https://www.fsf.org/bulletin/2021/fall/the-fundamentals-of-the-agplv3
hash_url: 036789c955419215be9d88c6823b55aa
archive_date: 2024-02-17
og_image: https://static.fsf.org/common/img/logo-new.png
description: The GNU Affero General Public License version 3 (AGPLv3) is the most protective of computer user freedom, yet it remains the most misunderstood of the GNU family of licenses.
favicon: https://www.fsf.org/favicon.ico
language: en_US

<p>The GNU Affero General Public License version 3 (AGPLv3) is the most
protective of computer user freedom, yet it remains the most
misunderstood of the GNU family of licenses. The AGPLv3 was created to
solve a very specific problem: how to protect a user’s rights when the
program in question is being utilized over a network. In this article
we will cover where it came from, how we benefit from it, and why a
developer should consider it.</p>
<p>The <a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPLv3</a> traces its origins to a company called Affero,
Inc. Affero was established in 2001, and they provided a platform for
interactive “Web applications” like discussion forums, mailing lists,
email, and blogs. Affero wanted to be sure that users could access the
source code for these applications, and that anyone who built
derivatives from them would also share alike. The copyleft license of
choice at the time was the GNU General Public License version two
(GPLv2). However, the GPLv2 was written when the client/server
paradigm was not widespread; it could not provide the copyleft
assurance desired for Affero's platform. That is to say, one could
obtain Affero’s source code, modify it, and allow users access to the
program over a network without the obligation of releasing its source
code to the public. With this dilemma in mind and some help from the
FSF, the Affero General Public License version one (AGPLv1) was
published in March 2002 by Affero. In November of 2007, the AGPL
joined the GNU family of licenses with version three, giving us a
freedom-protecting copyleft license for an increasingly networked
world.</p>
<p>Simply put, the AGPLv3 is effectively the GPLv3, but with an
additional licensing term that ensures that users who interact over a
network with modified versions of the program can receive the source
code for that program. In both licenses, sections four through six
provide the terms that give users the right to receive the source code
of a program. These terms cover the distribution of verbatim or
modified source code as well as compiled executable binaries. However,
they only apply when a program is distributed, or more specifically,
conveyed to a recipient. Using a program over a network is not
"conveying." It is important to note that this only applies to the
code running on the server, and not for example to the JavaScript
programs that your browser may download and run locally — these <em>are</em>
conveyed to you.</p>
<p>The AGPLv3 does not adjust or expand the definition of
conveying. Instead, it includes an additional right that if the
program is expressly designed to accept user requests and send
responses over a network, the user is entitled to receive the source
code of the version being used. For license compatibility reasons,
written into section 13 of both the GPLv3 and the AGPLv3 is the
explicit permission to link or combine any covered work under the
other license. Paraphrased from the GPLv3 section 13; you have
permission to link or combine any covered work with a work licensed
under the AGPLv3 into a single combined work. The GPLv3 license will
continue to apply to the part which is the covered work, but the
special requirements of the AGPLv3, section 13, will apply to the
combined work.</p>
<p>When confronted with a choice between the AGPLv3 and GPLv3, a
developer may think that their program doesn’t need the extra
protection afforded by the AGPLv3, but who knows what the future may
hold! For now, their program does not get used over a network, but
someday it might. We encourage developers to consider carefully
whether their program <em>could</em> be deployed by someone else as part of a
network service. By choosing the AGPLv3 (or any later version) in
these situations, the developer can future-proof their program in case
someone takes the project in that direction.</p>
<p>See the <a href="https://www.gnu.org/licenses/why-affero-gpl.html">Why the Affero GPL</a>? licensing page for more information
when considering the AGPLv3. To learn more about the AGPL and the GNU
family of licenses visit <a href="https://www.gnu.org/licenses/gpl-faq.html">Frequently Asked Questions about the GNU
Licenses</a>.</p>
<p><em>Copyright © 2021 Free Software Foundation, Inc. This article is individually licensed under the Creative Commons <a href="https://creativecommons.org/licenses/by-sa/4.0/">Attribution-ShareAlike 4.0 International license</a>.</em></p>
