I'm finishing a web application and I want to release it as open-source.

Here are my terms:

  1. You cannot compete with my SaaS/Cloud solution.
  2. You are able to use the software, even commercially, for free. As long as you don't sue me if it breaks.
  3. You can use, modify and redistribute the software, as long as it is open-source, you give attribution and you don't change the license, specially the first clause.

I've being studying and it seems like AGPL. Except for the first clause.

How should I license it?

  • 1
    If you are really willing to release your app as open source, then yes AGPL could be a good license choice but it won't satisfy your first clause indeed. Fully open source require you to think your business model differently. If you are not ready for that, then you could do as GitHub and Google do: only release parts of the app under open source licenses (in the form of libraries).
    – Zimm i48
    Oct 27, 2016 at 11:26
  • 1
    So anyone can use it commercially for free(2), but they can't use it commercially(1)? Oct 27, 2016 at 12:41

2 Answers 2


There is no such Open Source License. Specifically, your non-compete clause is fundamentally incompatible with the basic definition of Open Source: any license that would enforce your clause #1 would by definition not be Open Source, any Open Source License would by definition not restrict #1.

So, an Open Source License that enforces your clause #1 cannot possibly be exist. It is a contradiction in terms.

Straight from the Open Source Definition 1.9:

6. No Discrimination Against Fields of Endeavor

The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

Which is elaborated further in the FAQ:

Can I restrict how people use an Open Source licensed program?

No. The freedom to use the program for any purpose is part of the Open Source Definition. Open source licenses do not discriminate against fields of endeavor. […]

Freedom 0 (the most important one) of the Free Software Definition is very similar:

The freedom to run the program as you wish, for any purpose (freedom 0).

Which is elaborated further:

The freedom to run the program means the freedom for any kind of person or organization to use it on any kind of computer system, for any kind of overall job and purpose, without being required to communicate about it with the developer or any other specific entity. In this freedom, it is the user's purpose that matters, not the developer's purpose; you as a user are free to run the program for your purposes, and if you distribute it to someone else, she is then free to run it for her purposes, but you are not entitled to impose your purposes on her.

The freedom to run the program as you wish means that you are not forbidden or stopped from doing so. It has nothing to do with what functionality the program has, or whether it is useful for what you want to do.


There aren't any existing open-source licenses that I know of that allow you to dictate monetary or commercial terms. That notion would run counter to the very spirit of open-source.

The AGPL says "If you use this AGPL code as part of your application, all of your code must be distributed under the AGPL." But the AGPL has nothing further to say about the way in which the code may be used. You can make money with it, run a marathon with it, or call DestroyBaghdad(), and the AGPL couldn't care less.

The AGPL does not allow you to change its terms. If you do, it's not the AGPL anymore.

The only material difference between the AGPL and the GPL is that, under the AGPL, running a website or webservice using AGPL'd code constitutes distribution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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