I want to release a pre-alpha software for preview. I do not want to put the code in an open repository like GitHub yet because it is just a prototype and I intend to re-design parts. The package I am releasing contains the HTML/JS source which is bundled in a single file and is not uglified/minified.

However, I definitely intend to launch it as open source (I am thinking a combination of MPL for core and MIT for modules). Ideally I would like to put the code out in a phased manner with a separate repo for each component as they mature a bit (not a single repo that is a big dump containing everything).

What would be the best possible (if nothing else, at least the simplest) licence to use at this stage? Also, What other considerations should I take into account?

As per request to include more information:

What is my project like? What am I trying to license? I am developing a client side HTML/JS program hosted in NWJS.

What third-party resources are included in my project? All third party resources are open-source, afaik MIT, BSD and Apache 2.0 components used. The only exception are a few proprietary files that come with NWJS.

Who's your audience? What do you want them to be able to do with it? I have a few groups in mind, like Academics, but the software can be used by anyone. The only restriction I want to place is that change to the software itself are reciprocated back. I do not mind if people were to use my code in larger works, in fact, I would encourage that and would not insist on the larger project being open-source itself (as long as my code is open-source).

What's the status of your project? Experimental.

  • 3
    Just use whatever license you want to use when it is finished. Apr 15, 2016 at 0:49

2 Answers 2


I would endorse @curiousdanni's comment: "Just use whatever license you want to use when it is finished."

If you are afraid people are going to use your project before it is fully complete, don't be. People will not even hear about your project until you start promoting it. Placing your code onto GitHub will not bring it automatically more attention, and so you can redesign the parts to your heart's content without fear of people being dependent on bad code. When you feel like it's ready, then make it ready.

And if someone does accidentally stumble upon your code, and decide to use it, well, so what? They'll just use the old version of the code then instead of your redesigned version. The code still works, right? Let them take advantage of it. If they like it, they could even help you with the redesign process.

The main reason I would recommend making it open source now though is that you don't know if the redesign process will actually occur. Real life can sometimes intervene to make the redesign process difficult. So releasing the code now means that people can start using it now (and using it doesn't just mean actually using your application, but also reading your code and learning from it).

My main suggestion is to make sure you have a good README that tells people about the program, how to use it, and how much of the code is planned to be redesigned.

  • Thanks a lot for your advice @tariq-ali. I should have mentioned one of the reasons I want to release a prototype at this stage is to publicize it (at least the concepts behind the program), in order to hopefully attract some funding without which I could not re-write anyway. My bigger fear is that seeing a code that is working but not of a high quality could dissuade adoption and lead people to misjudging the product (Much like the many people that think this question here, because ill formed, is somehow evil and keeps getting downvoted). So thats my catch-22 situation and hence my question. Apr 18, 2016 at 1:54
  • 1
    Stating that the code will be redesigned and that you welcome contributors to help you in the redesign process and increase the code quality, I think, will help alleviate your problem. (And the people who may want to use your products are not necessarily going to be the same people who have to stare at your low-quality code, so you can still gain some interest in a working product.) Apr 19, 2016 at 0:44
  • Just add a prominent note that this is experimental code, that might change at the drop of a hat. Advise users to check back for changes (and hopefully contribute fixes and code!).
    – vonbrand
    Mar 2, 2020 at 16:48

MIT License allows code to be utilized for other platforms and open source works. while giving it a as is state. great for learning and sharing. Apache license is similar to MIT license except has features for trademarks and other stuff. it's the most liberal license (MIT) if you want to force people to share use GPLv2 license

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.