Choosing a license for web based software

I hack on web based (mostly javascript) software. If you are curious you can find out more about it on my website. I’m really not sure about how to license this software. The problem is, in short: It’s really trivial to copy web based software, add some nasty ads and make easy money while screwing over the user and to some extent me. While I can’t prevent that, I don’t want to allow it either.

Just to be clear: This is about software for end users. My stance on libraries is different.
I’m all for using permissive licenses for libraries because they make the library more useful to it’s users (other developers). This is not really true when we talk about end users of a simple web based tool.

Here is the approaches that I tried in the past:

Release it all as proper free software with a more or less permissive license
→ Some jerks come along, copy it to their server and stuff things full of ads while breaking others things. User loses, some jerk makes some money, I get pissed off. But: The license explicitly allows this.

Release just code as free software
This has actually worked quite well when the resources were a significant part (games).
But it feels a bit crappy too, because it actually makes legitimate reuse harder.

Release Code, all right reserved, make getting the assets some work
Did that for my analog film emulator. It worked. People are still allowed to study the code. Should someone want to do something cool with the code I’m still totally up for sharing pieces or collaborating. Has worked so far, but it’s not free software anymore and the hacker inside of me is disgusted by the thought of requiring other people to ask for my permission to do cool stuff.

So for the future I’m considering to use the AGPL3 which allows some additional restrictions to be placed on the code:

b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version;...

So with that in mind I would then insert a modal dialog when loading the application which states that I made it and where the original (ad) free version can be found and if the application has been modified in any way. I would require user interaction to either make that dialog go away or to go to the original (my version). The version I host/control would not show this dialog.

It’s still kinda shitty because it restricts legitimate reuse to some extent and it involves a double standard (the open source version requiring a in your face copyright notice which I would not show in ‘my’ version because it’s intrusive).
It would also require a CLA

So now my questions:
Do you find the dialog/splash ‘reasonable’?
Do you have any better idea for licensing software like that considering my constraints?

1 Like

This is the same type of problem we’ve been having with GIMP (gimpshop is an example). Part of the solution may be to concern ourselves more with the name and logo denoting the “official” project to keep it separate from people using the GIMP name as a method for boosting visibility and trust.

So, I don’t think the splash idea as you’ve described it is so bad at all. (This isn’t too far from the idea of making a community version of an F/OSS project and an enterprise version? Many folks are fine with this…)

I don’t have a better solution, but your idea for a splash screen seems perfectly reasonable for those who may lift your code/assets entirely and replicate. If they really want to build something on their own, let them do the actual work to make that happen…

The other nice bit about the AGPL-3.0 is that you can sue them to hand over any local modifications even for hosted things. :slight_smile: