Turning a side project into an open-source project
reaktor.com
reaktor.com
I was doing a lot of development work and going to github.com/github/gitignore to copy templates from GitHub's website to my own file system was getting tedious. What I wanted was a simple command line tool like
gi java > .gitignore
So I built it over the course of a week while at Mammoth CA. I was on a snowboard trip so I would ride during the day and code at night. I was thankful to have a great designer (who worked at GitHub) help me design the site. And today the project is almost 5 years old and gets nearly 80,000 MAU's.Clearly this isn't a huge problem as your project is doing really well, but it jumped out at me a bit.
Good feedback.
You should try Reddit. It has a lot of niche communities where you could share your project.
Also Google for things someone who seeks for a project like yours would Google. That gives you a rough idea of what kind of sources people use to find tools like yours.
Also some directories list specific tools (like "awesome" lists of github). Try listing your project there. Or even starting your own "awesome" list project on GitHub :)
There are other subreddits too which are trying to find cool projects like yours.
Other approach is to write a blog post and post that to e.g. /r/opensource
Fortunately GitHub helps you quite a lot nowadays with choosing the license for your project.
In my experience the GPL advocates completely ignore the concerns of the BSD people. The BSD people understand the GPL concerns they either don't think they are very real world (they will acknowledge some exceptions when forced to); or more pragmatically think that the GPL: concerns are outweighed by other concerns.
You need to figure out where you stand. Calling the concerns of the other side FUD is in fact not helpful.
Um ... people who advocate for GPL are not a uniform group.
> Calling the concerns of the other side FUD is in fact not helpful.
I fully agree with that statement, though.
Permissive licenses attract the broadest range of contributors, so if you're looking to build a large community, they are the way to go. GPL tends to have a smaller overall, but very strong pool of contributors, so if copyleft makes sense for your technology, by all means use it.
Just use a license, please.
Chances are a personal OSS project will only attracts a few dozen users and maybe a handful of contributors (contributing mostly small bug fixes) with the creator as the only real developer/maintainer.
There is also a good chance that the maintainer will only contribute from time to time after the initial "dev sprint", if it doesn't abandon the project all together.
Basically the bus factor for such projects is 0. If you are relying on one of them, you should be aware that you may have to maintain a fork on your own in the future.
Given this state of things, I prefer having permissive licenses (ex: MIT) on my projects. It's a way for me to give complete freedom about what you do/want to do with my piece of code (piece of code that I may have abandon but is still useful to you). You can fork it and keep the fork OSS or you can include it inside the source tree of your product and maintain it that way, the later being generally easier.
Also if it's you are the originator of a project what's stopping you from using the GPL license but not disclosing your own source while you commercialize?
Or companies adding closed source features to open source software. You can't do that with GPL unless you own all the code.
The classic business plan for software is to charge per license/copy. But if you release your software for free, you have to sell something else. And anyone who come up with a good solution for this will be the next unicorn.
Based on articles like http://www.mikeperham.com/2015/11/23/how-to-charge-for-your-... I've figured out the following:
OSS license - AGPL - I'm building web services distributed as docker containers, so AGPL makes sense because it forces businesses to buy a license even if thy just deploy an instance of the service without modification.
Commercial license - this is where I'm stuck. MIT / BSD isn't a good fit because the business is then free to make and sell their own version of the service. What license will allow a business to run my service, and customize it for their own needs if necessary, but not re-license or redistribute it? Based on https://choosealicense.com/appendix/ it seems like the Mozilla Public License comes close, but it forces businesses to disclose the changes they've made - which I doubt they'd want to do.
I don't want to write my own license - anyone know of a good existing license or template? Don't mind buying it if it's less than $100, but getting a lawyer to write one is much more expensive.
What you want is dual license. First is AGPL: you accept that some companies will use the free code - get over it. Second is a non-open source license: your lawyers write it, those who buy this license don't have to share changes (which could be made by you or them).
The hard part is not the license, the hard part is the business model so you don't go bankrupt. Since AGPL is always available what do you offer so that a company will pay you? (there are many good answers, just make sure you have one)
Because the AGPL counts network access as distribution, it would force businesses to open source their private codebases that communicated with my service - which is enough of deterrent to freeloading for me.
I don't think so. It only forces you to distribute the source of their copy of your service to any network users.
As others have stated, GPL/AGPL or anything "open" does NOT force business to buy a license. All it says it that _if_ they use your code, they have to make the code available to their users. (Today that often gets interpreted as made public, but it truly only requires that the users have access to it). So the business CAN still freely sell software that uses your code without your involvement in any way.
If you want to be paid by every business that uses your code, don't make it public. There really isn't any other way to force that behavior.
As far a commercial license goes, just basically just say it belongs to you and no usage is allowed without arrangements with you. That is generally wrapped up in a contract between you and the business. I haven't used it, but you can try a tool like this to generate that type commercial license: http://www.binpress.com/license/generator
One of the real advantages of going open for you (the author) is getting help from other people. Often it is small things, but you can get help. Doing a Dual License complicates this. As long as you are the owner of the code you can freely re-license it. But once you accept a code contribution to your GPL code, you cannot legally or ethically just resell that contributed code under the commercial license. So you either: 1) Reject all contributions from other programmers 2) Have two independent branches that might end up diverging 3) Asking every code contributor to grant you a license to also use their code under your commercial license.
To me, option #3 is questionable and probably won't fly well if your project takes off.
We moved Mycroft (https://github.com/MycroftAI/mycroft-core) from GPLv3 to Apache 2.0. There were various reason for this, but for us the biggest was that business generally avoids GPL code, and in some cases there the regulatory system comes in conflict with the requirements of GPL. For example, if a car brake system has GPLv3 code you are REQUIRED to provide a mechanism so users can replace that code. Good luck getting approval of a car. Even if you did get it approved, the car manufacturers would be terrified of the court cases they'd have to defend -- win or lose.
In short, if you don't think it is valuable enough to spend more than $100 on this, then just go with a well-known permissive open source license like MIT. If it takes off, you get famous and can command a high salary somewhere.
here's the project https://github.com/jehna/ga-lite
Sunken cost fallacy is a real thing even in side projects.