Why we chose the AGPL as Snipe-IT’s license

W
Neon sign that shows the text "Open Source" blinking
(image via sentry.io)

When our intrepid leader, @snipe, chose to open-source Snipe-IT, she was wondering which license to choose. First off, why did she want to open-source it; why not just keep it proprietary? Well, @snipe put it best when she said:

We chose open source because we owe our entire careers to open-source. It only feels fair that we give back to this community that has given us so much. We’re standing on the shoulders of giants.

Alison Gianotto (@snipeyhead)

So that’s what we decided to do. But then the next decision we had to make was: what license should we use?

There are effectively really only two licenses to choose from – the GPL (GNU General Public License), and the BSD License (named after BSD Unix, the Berkley Standard Distribution). There’s also some weird stuff you can do with “dual-licensing” but that tends to be open-source+proprietary – so the distinction still stands.

So, which to go with?

The most popular one that’s the most flexible for everyone is probably the BSD license. This basically allows people to take your code and modify it, and pretty much do whatever they want with it. Picking this license can be pretty smart in terms of maximizing your reach – just about anyone, from hobbyists to enterprises, can and will gladly run this code in just about any environment. So this is a very tempting license to go with.

The GPL license is stricter. The GPL, similar to the BSD license, states that you can modify the code in any way you want. However, if you “distribute” that code, you must make the source available. For web-based applications, there are thorny questions about what it means to “distribute” your code. So the Affero GPL (AGPL) corrects that – if your code is accessed via a browser, it is to be considered “distributed,” and thus the source code must be made available.

This license absolutely allows you to run this code, even in an enterprise environment – but some businesses can get uncomfortable with it because they worry that if they “co-mingle” code with GPL code, they will be forced to release the source code. That’s a fair concern.

So those are the choices on the face of it. However, there’re definitely a few other things to consider. One of the drawbacks of the BSD license is that you can absolutely grab someone’s software, make your own modifications to it, and start selling it. There is no restriction on that, whatsoever. And since you don’t have to distribute your source-code changes, the original author may never even see them. This can be a little scary to a software author, and in fact can be quite dangerous to small companies like ours. Amazon, in particular, has made quite a habit of grabbing BSD-licensed code and wrapping entire products around it, causing serious damage to the original authors.

One of the great side-effects of our license (AGPL v3, for Snipe-IT) is that we are relatively immune to that kind of behavior.

Amazon is quite allowed to create “Amazon Cloud Snipe-IT” or even “Amazon-IT” based on our software. And even to sell it! However – any changes they make to it, they would have to share back with us. So any of their wonderful ‘Amazon juice’ they add to Snipe-IT they are forced to share with us. They probably won’t want to do that, so that helps defend our position.

Mind you – anyone can absolutely go and resell Snipe-IT. That’s permitted. And if they don’t change anything in it, then they don’t have to share anything with us. While being in that situation is a little uncomfortable, we actually like that it keeps us ‘honest.’ It means we have to provide great value at a great price, which I think is exactly what we do. And we’re always in competition with ourselves in that the product is literally free – you can download it any time you want, and do anything you need to do with it. We don’t limit or restrict the “open-source” version relative to the “hosted version” – they’re both exactly the same.

A friend of ours (the fabulous Trey Hunner, who runs an outstanding service called Python Morsels, which we highly recommend for anyone learning Python) once summarized the eternal debate between these two licenses – BSD License is absolutely the best for the end-user, in that they can do just about anything they want. But the GPL is best for the community. And that’s the tradeoff that we want, so that’s why we chose the AGPL.

For more on choosing an open source license for your business, click here!

About the author

Brady Wetherington

CTO of Grokability

By Brady Wetherington

Snipe-IT at Laracon

Open Source in Business Interview

Snipe-IT at Longhorn PHP