I am currently working on a money tracking/invoice creation app that I intend to release for free. The app can be broken down to three parts:

  • The Framework, a generic, all-purpose collection of classes (php/mySQL)
  • The app itself (php/javascript)
  • The design (images)

I am trying to find licenses that fit three different purposes:

  • I want to release the framework under a license that specifies that
    • The framework is open-source, free, and cannot be sold
    • However, the framework can be used in commercial products, as long as no author names are removed from the code and the framework's source is available (a link to my sourceforge in the about page will do...Even little, hidden in a subpage, or in the FAQ, as long as people really looking for it can find it).
    • Code that uses my framework doesn't have to be open-sourced. I don't want to stop people from releasing non open-source, commercial products. Too many times I have been blocked by this when working for a client, I don't want to inflict the same problems on the community. Furthermore, I will surely use my framework myself for closed-source projects for clients.
  • I want to release the app part under an open-source, free license that disallows any attempt to sell it (but allows forks, as long as they stay open-source and free)
  • I want to release the design (icons, backgrounds) under a free license for non-commercial projects only.

Additionally, If it is possible (if such a license exists), I would like to remove all constraints, even for commercial products, as long as the project is led by a one-man (or a one-woman) team. In other words, I'd like freelancers to be able to fully enjoy complete freedom, but have some restrictions for companies.

It might be worth mentioning that although the framework is totally custom code, the app will contain some third-party, namely jquery, and maybe some other javascript components.

I am aware this is a very specific question that doesn't necessarily helps the coding community, just me, but I don't know where to turn to.

  • 4
    No FOSS licenses I know allow you to specify that the code cannot be sold. Jun 15, 2011 at 10:58
  • It feels to me that this is free as in speech so long as you're saying what I want you to say. Is it really in the spirit of open? Open attempts to solve most of these problems by saying "do what you want but if you're too much of a dick people will go and get the source themselves" (hence the attribution). Is that not enough protection? Jun 15, 2011 at 11:18
  • 2
    @Neil: Neither the Open Source Initiative nor Free Software Foundation will endorse licenses that forbid selling code. It's not only not in any of the licenses, it's explicitly forbidden by the published criteria. Jun 15, 2011 at 14:15
  • @David I think he is just saying he doesnt want someone coming in taking his free website, rebranding it and selling it as their own solution. I would bet that he is not looking for a prohibition of ad revenue or account revenue. Is that really against FOSS priciples? Jun 15, 2011 at 15:11
  • 1
    @Chad: Attribution is very important in the Free/Open Source communities. I really don't know what Xananax means by "cannot be sold". Jun 15, 2011 at 15:55

2 Answers 2


My first impression: For the framework, LGPL. For the app, GPL. For the design, CC. Add appropriate exception clauses where necessary. Don't worry about anybody selling the framework (without an app) - that won't happen anyway.

  • I guess so...I have never released anything public so maybe I am being too cautious. I am doing this as a payback for the open-source community that has given me so much over the years, but also for personal promotion. Although the personal promotion part is less important so if it gets too complex, I can just release under a regular open license and forget about worries.
    – Xananax
    Jun 17, 2011 at 11:07
  • +1 @ammoQ " Don't worry about anybody selling the framework (without an app) - that won't happen anyway." - if the person who might want such a framework sees it for sale, the fact that they know about frameworks means that they are likely aware of what software code is and what open source means, so they are likely aware of some open source websites. In any case if they are sensible they will have shopped around and probably come across open source sites. So: get your framework out on as many sites as possible to make finding it likely. Jun 17, 2011 at 11:48
  • Rob: that, and since a framework needs a lot of documentation, tutoring, support etc., it's just not easy to sell it anyway - possibly except to morons.
    – user281377
    Jun 17, 2011 at 11:56

You can get such a license written, if you really like, but I'd rather you didn't call it open source. The Open Source Initiative definition of Open Source requires that other parties be able to sell the software. Therefore, you'll be confusing people.

If you want a specific sort of license that fills particular requirements, I'd suggest getting a lawyer. There won't be a Free Software/Open Source license ready for you to use. If you're willing to allow your stuff to be sold as long as it stays Free/Open Source, look into copyleft licenses like the GPL family. LGPL is probably what you want for the framework, since an LGPLed DLL can easily fit into any sort of license scheme. You probably want a GPL version for the app, and I'd suggest the Version 2 or any later version for maximum compatibility.

The GPL requires that all derivative works be licensed under the GPL. It is possible to sell GPLed software, but it's impractical to sell GPLed shrinkwrap software since anybody buying it can legally share with the rest of the world. If that's what you really want, or are willing to settle for, the GPL will work for you. The LGPL works much the same, but allows linking to other software regardless of license.

As far as the one-person shop exemption goes, you can always add permissions to a GPL-type license. I'd recommend seeing a lawyer about this, since I can think of ways this can go seriously wrong. (For example, can Joe Solo wrap everything up into a proprietary package and sell it to a larger company? What is a one-person development team, really?)

In general, you should get the help of a lawyer to draw up license terms that are in any way unusual. The advantage of using licenses from the Open Source, Free Software, or Creative Commons lists is that somebody else has already paid for a lawyer to review the license, so you don't have to.

For the artwork, you probably want to use a Creative Commons license; you'll see the license link in the lower right-hand corner of every SE page. Creative Commons is likely to have a license you like, including the "non-commercial" clause.

  • Point taken. But I really don't want to see a lawyer, it's not that important. I mean it's a one-man job, it'll never compete with larger frameworks out there such as codeIgniter or cake, and I don't want to give it more time than necessary. As I commented to ammoQ's answer, I am trying to do a little self-promotion along releasing a framework that I deem useful (and simpler than the examples cited), so I would like to protect my own framework as the main reference for projects that stem from it. But that goal is less important than just releasing the framework and allow people to use it.
    – Xananax
    Jun 17, 2011 at 11:12
  • Furthermore, I have a personal grudge against large companies and I would like to do my part in promoting freelancing and freelancers networks by allowing freelancers to use my code as much as they like to, but disallow large companies from doing the same. I guess if it gets too complex, I can forget about that too.
    – Xananax
    Jun 17, 2011 at 11:14
  • LGPL & CC for framework & artwork, ok. But I don't want to force people to release derivative works under an open-source license. If my framework is used in a larger app, I just need, for example, a link to the source in the "about" page, or in the footer. It doesn't make sense to force someone to release an app open-sourced if my framework contributes to 50% or less of the code.
    – Xananax
    Jun 17, 2011 at 11:20
  • @Xananax - "I don't want to force people to release derivative works under an open-source license" - sure, if people don't have to modify your framework to use it, or build on it, or enhance it, then this is easy. Your code and there code remains separate - and so can be governed by different licenses. Jun 17, 2011 at 11:55
  • A good open-source software engineer should know that it is better not to modify an open-source project "forking" because if you yourself release an improved version of the framework that has features that they can benefit from, then their software that uses their version of the framework may not be able to use your new version because of APIs changing, or code that obsoletes previous code that their version depends on. Better to submit any such modifications to the author of the code for inclusion. Jun 17, 2011 at 11:55

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.