I am Prasanna, the founder of PrivJs (https://privjs.com) - Internet's first open-core software marketplace.
While building a few products, I was wondering if it could be a good practice to release a chunk of my paid software to the open-source community? Will that have any adverse effects on the product? Or will it benefit overall?
-Prasanna
Simple Mobile Tools in Android too. Paid in Play Store, free in F-Droid. Simple Mobile Gallery is the top notch gallery app on Android.
I discovered this for pgmodeler[1] and found it a very good way to monetize the development of the application.
But the thing is that while Windows has many alternatives (I'm saying this as someone who's been using Linux full time since the age of 11), for most people that really isn't an option: while you can get things like Photoshop to run on Linux, the experience is anything but optimal. I don't use Photoshop at all(or any graphics programs). But say my mum who's an artist - she practically has to use Windows. So in that sense, Microsoft has no benefit in open-sourcing anything, even though they have been doing that in recent years. I remember seeing a huge discussion on Twitter last year and several people said that at some point Microsoft will become a completely open-source company. Personally I doubt it, but who knows...
Now let's look at another example - Google, and Chrome in particular. As a browser, Chrome has a million and one alternatives, many of which are very good. So having an open source alternative is in their best interest - think of how many browsers [1] use and contribute to the chromium engine - it's a win-win situation for everyone: Big community, a thousand eyes looking into it's internals(and undeniably catching security flaws).
Then again, this isn't always applicable. Even more so with javascript and npm in particular, which has turned everything into an endless rabbit hole of packages, dependencies and before-after install scripts.
[1] https://en.wikipedia.org/wiki/Chromium_(web_browser)#Active
I think after MS gave up on Edge, we're down to one - Firefox.
You can create your business around service providing rather than using state legislation to coerce people to not reproduce and alter information they know.
I too have phantom nostalgia and longing for anarchist ideals, but that statement relates to life about as much as saying that matter and goods are not property because all molecules of a substance are identical and thus you could make the same things yourself. ‘You could, but you didn't’, as they say.
> you should release all code as free software
In exchange for your complete disregard for the value of the author's time and effort? Dubious arrangement.
> rather than using state legislation to coerce people to not reproduce and alter information they know
Perhaps that's actually somewhat similar to when state legislation says you shouldn't snag matter just because it's lying around? You know, the ‘natural’ and primordial right of capitalist bros that somehow requires police force and surveillance for it to be implemented.
There's a cost to then having to manage the community and being forced to design by committee. There's a lot of control to lose for the developer in respecting user's liberty.
If the code isn't GPL'd or (MPL'd or open-core'd), there's a real and present danger of established firms forking it and making it their own.
That is-- if I'm being skeptical and allowed the liberty to make sweeping generalisations-- there's a lack of ethics with everyone else in this industry.
For example, fullpage.js - the only way the developer could make money is by selling code. Same applies to several javascript libraries.
This type of business model works for complex B2B software, but I'm not so sure it works for most other software.
For Example, Elasticsearch. So popular, fully open-sourced. Still, Elastic sells fully managed clusters. And, many companies choose Enterprise license.
If you want smaller example. 2 month prior the beta launch of NewsCatcherAPI (https://newscatcherapi.com) I decided to open source some code we've done (https://github.com/kotartemiy/newscatcher). We ended up having 300 people fro beta sign-up. Then, 700 pre-launch.
So, I attracted lots of developers who already liked the field via open-sourcing
Edit: grammar
Open sourcing your product absolutely requires that you have a proper monetization strategy in mind, it should not be an afterthought. I’ve seen too many startups fail because they were not able to capitalize on the momentum they have gotten with their opensource version; projects such as rethinkdb come to mind.
Once you have a solid plan, by all means, release an open source version. But remember, once that cat is out of the bag, it’s hard to put it back in.
Have a look at the Parity Public License and the Prosperity Public License. https://paritylicense.com/ https://prosperitylicense.com/
Those two licenses allow others to read, modify and redistribute your code. Parity requires that users open source their code, while Prosperity only allows non-commercial usage. If a potential customer doesn't want to be restricted by the public license you choose, they can instead buy a private license.
Also see License Zero's private license. https://licensezero.com/licenses/private
So personally I'd like it if authors at least made provisions for open-sourcing their apps in their will, or in the ‘life moved on’ plan.
Hyperswitch the cmd-tab enhancement is still very usable and is updated, however the updates seem to be limited to resetting the ‘beta’ time limit. Not that it needs new features, but I think it does have at least one bug. I'm also baffled by the author's release model (the time-limited but repeatedly prolonged ‘beta’) and irked that among the couple dozen apps on this topic there aren't good open-source ones without some dubious features. Since Hyperswitch is fully freeware, why not make it open-source so others could fix problems they run into?
I think there were other ones, but can't remember them right now. Basically, if an app doesn't bring in plenty of money, why not at least let people make something better of it.
Even in the B2B market successful open source companies often use dual licenses and release the open source version as a sort of crippleware by keeping essential libraries and tools proprietary or under very restrictive open source licenses.
For instance laravel has a hosted invoicing app: InvoiceNinja, but it's open source too, as in you can host it yourself, just it doesn't have any of the multi-tenant stuff baked in.
However, if a copy of the source doesn't come with my purchase then I am much, much less likely to buy it. I'm obviously only one user, so take my anecdote with a grain of salt.
I use a model of "source-included" personally. This way I respect (most of) the freedom of my users, but not at my own expense.
I don't have a vetted license in mind tho. So far I haven't needed it. Someday hopefully I will ;-)
Side note: make sure you have build instructions for your users tho. I don't like when I buy software that is source included but then building is impossible because `make && make install` (or whatever for that platform) doesn't work and there aren't any instructions. You don't want your buyers to have remorse.
*Other side note: Thanks for thinking about this! It's really cool of you to think about community