I'm building a website using Django and I'd like to include django-wiki, however it is licensed under the GPLv3. Does this require me to open source my front end code and/or server code? Or can I apply the license only to the wiki portion of the website?

The wiki will be quite separate from the main site, but will contain some shared templates and boilerplate code, and will be at the some host and running on the same server.

Edit: In case anyone gets here asking about the exact same application, here is what the Django wiki folks had to say.

You can use the wiki on a public commercial site. You can also write plugins.

But if you modify the code and distribute a modified version, you have to also publicize those changes.

  • Can you link to the license? Because I can't find it anywhere in the source code or documentation. If it really is GPL, they're being very low-profile about it. Aug 5, 2015 at 6:06
  • @RobertHarvey The file "COPYING" in the root directory of the github repository is the GPL3 license. This is the only reference I can find, which suggests licensing is very much an afterthought -- I'd ask the developers if they intend it to apply to the client side parts or only the server side. If only server side, there's no issue.
    – Jules
    Aug 5, 2015 at 6:10
  • Are you distributing the code to the Web site? E.g. if you are working as a contractor and you typically deliver the product to your client as the source code to the Web application. This is the case where the GPL usually applies a restriction on what licensing terms you must choose for that type of distribution.
    – Brandin
    Aug 5, 2015 at 6:29
  • By the way, there is a new Open Source SE in beta, and the answers are typically of outstanding quality there. This question would fit perfectly there. Aug 5, 2015 at 15:09

2 Answers 2


My reading of the GPL is that it does not apply to this kind of scenario, where a UI (the web browser) accesses the program over a network. In fact, they state as much in the license:

To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

"Conveyance" is what triggers the copyleft provision.

This "loophole" is, in fact, the reason the Affero GPL exists. The Affero General Public License is a modified version of the ordinary GNU GPL version 3. It has one added requirement: if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there.

Things get a little dicey if you send Javascript to the browser. If the server program depends on the Javascript for its proper functioning, then technically you have "conveyed" a portion of your program, and you could argue that it all falls under the GPL in that case.

  • The django-wiki app does have static content including Javascript which is run by the browser. So unless I disable that portion, it would constitute conveying, correct? Aug 5, 2015 at 15:17
  • 1
    I would talk to the django-wiki folks and see if they care about this. Aug 5, 2015 at 15:45

GPL is not recommended for scripting languages, such as JavaScript and Python. Unless you are sure these codes will not be used as a library. Because GPL treats these non-binary executable code as source code, even if you minify or obfuscate them. While you are referring a script which is licensed under GPL, you have to open your source code of the entire script.

When should a script use GPL? The answer is: when you wish all about this script should be open source. That is what django-wiki's maintainers thought, I guess.

MPL 2.0 is also a free software licenss as GPL, but MPL 2.0 solved this problem. It is more suitable for scripting language.

  • 1
    The GPL does not treat minified or obfuscated code as source code. The GPL definition of "source code" is "the preferred form of the work for making modifications to it", which minified or obfuscated code is not. (This is the same in GPLv2 and v3) Jul 14, 2021 at 9:18
  • @user253751 All you said are correct. But "The GPL does not treat minified or obfuscated code as source code" is controversial. There are no clearly clauses in GPL content for this case. It is consensus that binary format is not "the preferred form of the work for making modifications to it". There were someone thought that minified or obfuscated code are also editable text. In the end, the opinion of the judge or the jury has the absolute power. It's not wrong to use scripts under GPL. It's just not recommanded for risks considering.
    – LiBook
    Jul 15, 2021 at 3:20
  • Who prefers to edit code in obfuscated or minified form? Show me. The GPL definition is clear. Jul 15, 2021 at 8:44
  • @user253751 You don't get it. "Who prefers to edit code in obfuscated or minified form" is not important; "How may someone explain 'prefer' in the court" is. The "prefer" in GPL is a such subjective concept. This is a gray area. And you can't just ignore it. The law is cruel.
    – LiBook
    Jul 15, 2021 at 10:39
  • 1
    Direct quote from the GPLv3: "The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work." Jul 15, 2021 at 11:06

Not the answer you're looking for? Browse other questions tagged or ask your own question.