Ask HN: Is it a good practice to provide open-source version of your paid app?

60 points by pmestha ↗ HN
Hello hackers,

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

39 comments

[ 1.8 ms ] story [ 95.5 ms ] thread
You might check out Aseprite. It's a a software which binaries are paid, but source code is free and you can just conpile a program for free if you want.
Same for the XMPP based chat app for android, Conversations (although F-droid already provides a compiled package, so users don't really have much incentive to buy the Play Store version).
Aseprite came to mind for me, too. Then again, Aseprite is aimed at artists rather than programmers. I'd argue that most people who use it don't want to go through the hassle of compiling it themselves – compiling software can be a daunting task. I have the feeling that a similar business model ("free on github if you're willing to put a little work into it, paid in stores if you prefer comfort") wouldn't work as well as it does for Aseprite if the software would be aimed at programmers.
True, this may have worked for Aseprite only because of the fact that the program was made for artists. So their sales haven't been hurt.
Ardour comes to mind. They don't even assist any building steps and just direct people to the paid download version.

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.

Lovely app too. I looked at the effort required to compile and just paid the AU$28. Very happy.
Which leads to the question: Would you have paid/donated to the project if it were easy to compile? Like someone provided a simple compile script.
It shouldn't if you model it right. A lot of companies do very well with 'open core', which is sort of this. I think there's other successful ones as well.

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.

If your marketplace is for “open core” licensed code it would make sense for you to use that model too.
I think it will not harm. Usually, because people who cannot pay - will not. People/companies who need high quality products and/or have expensive labour will choose a paid plan.

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

You’re correct, but I want to emphasize a point from your comment: ElasticSearch only earns a lot of money because they have a very good monetization strategy for their managed clusters.

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.

If you care about the liberty of your users and ethics, you should release the all code as free software. Information is not property.

You can create your business around service providing rather than using state legislation to coerce people to not reproduce and alter information they know.

In my opinion there is a limit to what codes should be provided for free. Because we cannot build a business around all open source software.

For example, fullpage.js - the only way the developer could make money is by selling code. Same applies to several javascript libraries.

I agree.

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.

> Information is not property

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.

It may not harm you on the sales side of things directly, but going open source will make it easy for your competition to catch up, which might matter if you find traction with your product.
I think this is intuitive, but are there are real world examples of this?
If I would ever would launch a product, I would choose AGPL for the open source side and provide a commercial license for those who need it. This has the advantage over MIT/Apache that if someone wants to build a business arround your free software, they have to provide their changes to everyone.

I discovered this for pgmodeler[1] and found it a very good way to monetize the development of the application.

[1] https://github.com/pgmodeler/pgmodeler

Correction: the AGPL only means that you have to provide the open source code to your customers (folks who interact with the service), not to everyone (unless of course the service is open to everyone). Of course those customers could throw the code up on GitHub but in practice they probably won't.
Depending on pricepoint, the author of the original project could just become a customer of the spin-off project, and then publish the source for all.
I think a better option would be "Source Available" rather than AGPL. AGPL isn't tested in courts, but the _last_ thing a company would want is all of their source being forced open because they used demo'd some tool internally. A "source available" option allows a company to review your code or even solve their own problems, but without risk of being sued by a third party.
That's the point. Companies will choose the commercial license, then, out of fear of getting sued. If they want to review the code and demo it, they can look at the git repository or use a hosted demo version by the author. In this case, there are no fewer capabilities than with closed-source software.
AIUI the sharing provisions aren’t triggered by internal company use.
It will substantially harm sales of B2C products, but it may make sense for B2B products that require support and training and aren't based on any substantial know how/trade secrets. In that case releasing as open source might even be beneficial. A good trade off is to release libraries as open source but keep parts of your final product (e.g. GUI) proprietary.

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.

I think Kong* does this rather well. They have a usable open source product that has a lot of the core functionality and it more than enough for small businesses and hobbyists. They also provide enterprise support and a enterprise products which includes functions that are typically used by enterprises (like fine grained auth).

* https://konghq.com/

Well, I've been a user of a couple closed-source apps that have apparently fallen by the wayside and don't get any development anymore. Meanwhile, the open-source ecosystem doesn't have good native alternatives specifically in those areas.

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.

Out of curiosity, which apps are these ?
Disk Order is/was a fast and sleek two-panel file manager for Mac. However some bugs were never fixed. Releases just stopped, and the company site later disappeared. The primary alternative, Forklift, is just too slow in the version three. Double Commander works but doesn't integrate well with native OS features. (Total Commander remains a distant ideal on non-Windows platforms. Boy do I miss its speed and comfort.)

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.

In a word: Depends. Microsoft for instance nailed it perfectly. For many years billions of devices ran cracked Windows copies and truthfully that didn't bother individual users in most countries. While illegal, realistically no one was going to bother with 15 year old Jimmy somewhere in the countryside. But they kept insisting on it. Until they figured out that locking and blocking was never going to work. So they adopted the WinRAR approach: "Hey you are running an unregistered version past your trial. This may have legal consequences."

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

>Chrome has a million and one alternatives

I think after MS gave up on Edge, we're down to one - Firefox.

and technically safari, obviously also webkit but not under googles control
No doubt it is the biggest. From the prospective of a Linux user however I'm not complaining. IMO it outperforms firefox vastly in terms of performance and all the different chrome-engine based browsers have been incredibly reliable: Ever since the pandemic started, opera has been my go to for ssh tunneling, while keeping chromium clean. All I had to do is get used to some different shortcut keys and the red logo up on top, but that's it. Still, there are several other engines available but they are still nowhere nearly as polished as chromium. Hence my statement that this has been a successful, partially open-sourced product.
Sidenote on chrome: I'm loving the Safari Tech Preview. Way Faster than chrome, has U2F support (finally), and is far more privacy conscious because of the lack of conflict of interest.
If you want to open all of your product's code, then you might want to use a public-private licensing model. https://indieopensource.com/public-private/users

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

Note that the Prosperity, Parity and Licenze Zero licenses are not open source due to the restrictions they place on certain types of users, such as other businesses. This may be fine for one's usecase or as a business, but one must know that they are not in fact truly open source.
I’m not seeing where Parity discriminates against certain users, groups, or fields of endeavor. Clause 9 of the open source definition[1] seems a close thing, but the same reasoning for A/GPL applies.

[1] https://opensource.org/osd-annotated

If you wanted me to use and pay for your software, you'd need to provide the source. I have no problem paying for software - in fact when the price is fair I do so liberally.

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