Selling open-source software
thenewstack.io
thenewstack.io
The main problem is that many teams think they’re “that guy (or girl)” who can manage a complicated piece of infra as a small team and will be saving money. If you spend 10% of your time doing devops work, you spend 10% less time on your actual product (you might as well be binging netflix). A majority of these teams convert (IME) to a hosted offering once the right price and SLAs and DevExp are there. The only part of your sales pitch that matters to these teams is “this isnt worth your time to self host when we have a great offering thats cheaper and faster to get setup”. If you have a logo from a big co that has the talent to self host but are buying your product, then your work is done.
1. 10% of your time doing devops work isn't necessarily a waste - if 10% of that time is cheaper than enterprise offerings, then this is probably worth the resources, unless you are very short on talent.
2. You have an assumption laden in this comment that SaaS products eliminate the need for spending time on "devops work." It can greatly reduce that time, but IME even administrating a SaaS product can come with a ton work - look at EKS, a "managed" kubernetes cluster, but often requires a lot of kubernetes know-how to properly configure and maintain.
That's not the right calculation for revenue-generating products (IME). The right calculation is: if your product got this 10% instead of you doing DevOps work, is the additional long-term revenue higher than the cost of the enterprise offering?
- You don't actually know if this feature will be important long term
- You have many urgent needs, the opportunity cost of waiting for "build" to finish is too high
- Your company is, for various reasons, unable to attract and retain the kind of talent who could maintain a system of this complexity (I realize this sounds like "we're not willing to pay market reates", I promise it's more complicated than that)
SSO helps, but it can still be work to roll out.
I am really puzzled by the terminology.
Infra is often a financial decision as much as technical.
(reminds me of basecamp exiting the cloud but I know nothing more than that)
Not really, SaaS built specialized automaton to reduce the engineering effort so that they can scale better. Therefore, if the users need to spend 1 hour/day on their infra, the SaaS can spend the same amount time to manage infra for 100s customer.
In some extreme cases, the software run by the SaaS is completely different to what the regular users use. For example, Confluence Cloud Kafka service does NOT actually run Kafka underneath, but a proprietary system called Kora that speak Kafka protocol.
I believe the question is really high level and strategic and there’s no one size fits all.
Not having the amount of expertise or hours on hand to support it can be another. Shadow labour costs can add up pretty quick and some orgs like offsetting that to the vendor to not overload their people.
Another consideration is how much the tech aligns with your core business. Just because you need it doesn’t mean you should build or run a ticketing system.
Too often there is a lot of SharePoint whiplash and problem “solutions” that grew out of control.
Large orgs don’t always behave rationally and pragmatically when there is self preservation or politics at play instead of being effective at your work.
There will be companies who prefer to self host and those who don’t, and having an option of paid support or cloud hosted can go a long way especially when the open source project can set itself up as a first class plugin in the Microsoft cloud.
Many of not most companies are already on Microsoft and it ensures a good amount of support for open source so they don’t have to separate features into different tiers.
One of the more interesting open source setups was a product that was licensed both as open spruce and commercial, and the customer (often government or education) would have a policy of commercial only or open source only and they could support it both ways.
It is very easy to destroy response latency by pinging loads of messages around when they should be colocated in one place.
This is one of the reasons AWS services are so sticky compared to everyone else.
Secondly, opensourcing is distribution strategy. Like any other GTM, you have to consider the fact that people who are using your product almost 90+% will not buy the software. They will use it, but they won't pay for it. You have to have an outbound sales motion that reaches out to people, send linkedin messages, asking them to do PoC. Thing is, if the opensource product is popular, the end user receiving the message might have a high product recall value.
Case in point, it would be very hard for Elastic to develop Elasticsearch and then compete with Cloud providers purely on hosting quality and price. Opensearch seems to receive very very few new features compared to ES, and will have features that will not be opensource, like all the hot and cold storage stuff.
Companies like Redhat and Hashicorp are different because they sell huge enterprise deals, but a mass market SaaS only play is a tricky business model.
I have an idea ("question" really), but not sure if it's legally sound.
I'm working on a side project for quite awhile now. My original intent was to write a simple software and then release it under AGPL. But then I got greedy and it has grown to over 20,000 lines of Go code -- too big to just give it out for free IMO.
I still want to release the software under AGPL, but now I also want to compensate for my time and effort. So I renew the plan to the following:
- I'll still release the software under AGPL as originally planed
- I'll maintain full ownership to the software, and will not be accepting code from other people (or doing anything that complicates my rights of ownership)
- Based on the original code (open sourced under AGPL), I'll create another software which adds extra functionalities for users who might want to pay for it. And this software will be for sale and completely propriety, the "all rights reserved" type.
My reasoning is, since I'm still owning the software, legally I can do whatever to it, including "re-licensing" the same code to myself under a set of different conditions. The open sourced version under this context is there to provide a fallback (say, in case my users no longer trusts me) as well as a default that guarantees the minimum functionalities that my software will absolutely offer regardless if you're paying or not.Although it's not strictly "selling open-source software" any more, it could be a balanced approach to the conversion problem, IF it can legally be done this way of course.
But then, can it be done through? Is there any legal and licensing trap that makes the scheme impossible? Thank you in advance.
Only if every commit is by you, or has rights assigned to you (typically via CLA).
If there's other authors, they continue to have AGPL rights on the repo - and can request your future changes to be provided to anyone the software is distributed to.
> I'll maintain full ownership to the software, and will not be accepting code from other people (or doing anything that complicates my rights of ownership)
Usually this is done with a permissive license—GitLab is MIT, IntelliJ core is Apache 2—but iText PDF does something similar with AGPL. My understanding is that if you actually retain full ownership and accept no outside contributions, then you're not obligated to follow the terms of your own license. AGPL is just the terms on which you let other people use your code.
Legally, it's fine. But your plan as described is highly unlikely to work. As others have pointed out, open core is harder than closed source, because you can only charge for the difference between the open source version and the commercial version, and that represents only a small amount of the total effort you've put in. On top of that, your main audience consists of people who really prefer not to pay for software.
> On top of that, your main audience consists of people who really prefer not to pay for software.
I thought about this as well. But doing a pure close sourced product is unlikely to cover these people too. Sure, making the product open source might convert some paying users away to use the open source version, but at least I earned the trust of these users (and hopefully made them happy), still not a bad out come from the open source perspective :)
They have a cloud service and some enterprise thing that is separate, but I don't know what they are.
Copied from the FAQ on the pricing page: "I have strongly considered open-sourcing UXWizz but keeping it license-based allows me to work full-time on it and improve it at a much faster pace than most of the open-source software. By being focused on the self-hosted aspect (instead of providing a "hosted" solution) my interests are aligned with yours: make UXWizz easy to install, easy to update and highly-performant on any server."
People are willing to pay to self-host, especially if the product is better than the paid SaaS alternatives.
In my case, positioning the product as "self-hosted first", attracts a slightly different target audience, either technical people or business people that want to use the product to start their own SaaS. There are still many basic website owners using the analytics platform on their own, for their own website, but it seems a bit harder to get those interested than the web agencies.
Until recently, the support period would auto-renew. Many people would forget about it and ask for a refund, so I decided to make it more user-friendly and make the support renewal "on demand". I am adding the update/renewal prompt in the app soon, we'll see how it goes.
As for the current number, it depends on whether the people are still using the product, most of them are. I would say around a quarter or less renew currently. Also, now, the support/updates is not exactly strictly enforced (I sometimes respond to support queries for people without a valid support period), but I am working on integrating a ticketing system that would require a valid support period, which should give more reasons to customers to renew.
Didn't see that mentioned in the article, but it's worth noting
They likely already have approved contracts and payment set up. They likely already have a contact person. They can be pretty sure that AWS will be around for the longer term as opposed to a startup.
Config:
1. You set up an account on the marketplace - sign up, then connect it to Stripe through the marketplace and decide which software you want to sell (about 15 minutes in total)
2. Copy-paste a new license to your repositories - You relicense your software to use a slightly modified version of MIT license, which requires commercial entities to pay for your software (5 minutes or so)
That's all for config, now your part is done and the rest of work is on buyer's and marketplace's side.
You of course remain owner of your software, you don't move any rights to marketplace or users, except the license for usage, just like you do it now with MIT/GPL/whatever license you use right now. Marketplace is only to connect you with buyers and give you centralized place to sell with automated infrastructure, so you don't process payments, signups, etc. by yourself
Selling:
If a company wants to use your software, they need to pay a monthly/yearly fee - you choose how much you charge
License:
You can customize the license if you want - you can choose whether you allow free usage for non-commercial/scientific/charity purposes and you can also set some other feature flags, so you have a control over how your software is used
And that's basically it
There's an MVP on https://poss.market if you would like to check if that even makes sense to you. Thanks and please let me know what do you think if you made it to this point. I still figure this out and your feedback is invaluable to me!
My assumption: the reason serious companies will pay is that they don't want to make silly mistakes like license infringement for which they can be sued. If they want to use your lib/tool/etc, because it will speed up their development or help they make money in any other way, they will choose to pay you these $100 per year. If you gain a few (dozens, hundreds, thousands) clients like this, you're able to build a solid source of income, and since they buy a license on a subscription basis, it's likely you will keep the clients for the next year
Then the software is not open source anymore, i.e. the claim that one sells open source software is fraudulent.
Side remark: In the past Microsoft attempted to establish the term "shared source" for software where you can see the source code, but which is not open source.
This is still wrong (and likely again fraudulent, but IANAL), since the software is not open source if there are such usage restrictions. Call it, for example, "paid sofware with source available" ("source available" is another common term for software for which one can see the source code, but which is not open source).
2) The usual way to do this is to AGPL your software (or be even stricter), and sell it by relicensing it for businesses who pay you so they can use it how they wish. You don't have to make up a new "non-commercial open source" license to do this.
edit: It feels like OSS people are haphazardly stumbling through the thought processes that lead to the GPL in the first place. Once you've made an open source license that doesn't allow people to make money using the software, does it matter whether they share their changes or not when they distribute?
What's motivating people to reserve the right not to share changes in the software they distribute for free, other than to maintain a now enforced as worthless (by this particular license and similar variants) distinction from the GPL?
Fraud requires intent to deceive. Your conclusion seems very alarmist and unfair.
There are further plans, but I'm still trying to get some funding/help to have a time to continue development