I'm about to start a project and make it 'open source' cause I really like it, and would fit perfectly my project spirit. The project is divided in 2 parts:The main application, whose anyone could contribute with codeThe database, built by users entryAlso, I want to release code on GitHub, so anyone can see how it's made and eventually contribute on any of the many parts it's composed, and all data in my database freely visible on my website.The problem: My favorite open source project has been attacked in a very simple but effective way, and I fear that I could fall it the same kind of trap.Another pretty popular application I know had make a very different but problematic issues with licensing.Worse of all I fear that anyone (a single person or a company) could take my code and make a proprietary version of my software, or fork it and make another separate version that develop separately, making it not contributing on my project.At the same time I want to retain maximum copyrights on project's destinations and data/code, in a way that I could make deal with partners/make a separate donators version or something like that. Summing:I want to make code/data:totally open for viewtotally open for editing/contributingfree to use/free to download, in any fieldsbutretaining copyrights on ALL code/data (= hold copyrights on my and user's contributions)give me the power to monetize in some kind of way, if I wantavoid developing of separate project using my project's code/data.Maybe I know it sound a kinda dictatorial, but I fear that someday I could lost power to decide the future of the app or make me battle against a derivative of my own code.Ideas:I could license the projects in this way:Data (on my site) - Creative Commons BY-NC-ND-SA (So anyone could use it for various personal project, and make it free to view/use without having to worry about stealing of using in a commercial way, letting me monetize it in any way I like)Code (on GitHub) - ? (What license respect all the premises I've done?)I really want to make something free for all, retaining in the same way the power to lead the project in the best direction for all!
How to retain complete copyright on a GitHub open source project
license recommendation;github;relicensing
The three freedoms you say you want to give (totally open for view, totally open for editing/contributing, free to use/free to download) are not contentious, so I'll focus on the restrictions you want to add: how to implement them, and whether or not they stop your software being considered free.Retaining copyrights on ALL code/data (= hold copyrights on my and user's contributions)This is achieved by requiring any contributors to your codebase to complete a copyright assignment.  The practice isn't unheard of; the FSF requires that contributors to GNU software assign the copyrights to the Foundation.  Some people have issues with copyright assignments, so you may well find that the pool of contributors to your project is reduced; but requiring one doesn't make your software non-free.Give me the power to monetize in some kind of way, if I wantThis is achieved by dual-licensing your code, which you can do as copyright holder (see above).  You allow others to use your software without the obligations that traditionally attach to strongly-copylefted software in return for money.  It is possible to dual-license weakly-copylefted software, but since a weak copyleft doesn't prevent commercial use without obligations there's no real incentive for anyone to buy your commercial license.Avoid developing of separate project using my project's code/dataThis is the problem one.  The four freedoms of free software include the freedom to study how the program works, and change it as you wish, and the freedom to distribute copies of your modified versions to others.  Note that if you try to constrain those freedoms, you can't claim you are giving them; they must be unfettered for your claims to be taken seriously.  So saying everyone can contribute to my project, but only through my organisation and after assigning copyright to me will not satisfy the definition of freedom one, and although you can certainly do it, people will not regard your software as free if you require this.So there is no free software license that will achieve your goals.  Although their licences are not felt to be good for software, the Creative Commons BY-ND license comes pretty close to doing what you want, and you might find it sufficient for your needs.