Pretty good overview from Baldur — I don't always agree with everything he writes but this seems relatively correct.
One question I'd ask him (and anyone else reading) is: what are some other options for monetization?
Over the last few weeks I had three different VCs reach out to me about some of the open source projects I've been releasing, and ask me if I'd thought about making a business out of them. I told them that no, based on the problem the software was solving, I didn't see how I could adopt open-core or companion-saas business models, and I wasn't sure how else it could be done while keeping the code open source.
Can anyone suggest a viable business model that would allow:
* Code remains at least source available, ideally open source for non-commercial use.
* I can charge for commercial use.
* Actually doing the licensing is reasonable, ie no spyware or phoning home from the tool.
Wouldn't need to be perfect, I understand that if the code is open source a company could easily fork and use it without paying me. The idea would be to make it zero-headache to pay me for a license if the code is being used by a funded team.
I don't think "source available" is really that viable of a model. MS tried that with a lot of their developer offerings before more became truly FLOSS, specifically in the .Net space.
In the end, I'm less likely to trust/use ANY non-floss software/services that doesn't have a clear and clean exit path. I can use CockroachLabs (CockroachDB cloud) as I can exit pretty cleanly to self-hosted PostgreSQL with other models. I can abstract the usage of say DynamoDB to target other options relatively easily as well.
That said, tethering deeply into rented services, or commercial+floss providers can only hook you in the end if things get too dicey. And you only need to look at Oracle and IBM/RedHat as examples of the hook you and reel you in approach. A lot of businesses are also pretty deeply tied into a given cloud platform. They all have nice to have, relatively easy to use features/services. If you don't have an exit strategy, you better have a fat wallet. It's not that it won't still be painful to exit, but without at least a strategy, you're trapped.
I think an alternative is to fund _individuals' maintenance of the projects_, as opposed to the project itself. Filippo Valsorda has written about this recently: https://words.filippo.io/full-time-maintainer
That's an interesting idea, thank you, I'll read through the post.
EDIT: I found the post interesting but unfortunately these projects are in no way load-bearing. I'm happy to hear Filippo has made it work for himself but as he points out, the projects he works on are simply much better suited to sponsorship and retainer/consulting agreements. I wonder what he would recommend for newer or less-load-bearing projects.
What ChibiOS does is release under GPL3 and then sell a commercial dual license. This is definitely open source and also means most non-open-source commercial use would need to pay for a license. It’s probably also one reason why FreeRTOS is much more popular in business than ChibiOS.
I asked this question in a discord for this kind of stuff and the answer I got was "not possible." I also spoke with the developer of OrbStack, and they suggested just not being open source and charging for it, which is what they're going to do. When it comes to dev tools (particularly those that are involved in operations/sre flows like pgmigrate) I consider open source a huge benefit, and I'm sad to think that there is no way to get paid for an open source project without shoehorning in a bad experience or unnecessary features (like Baldur points out)
If the software takes the form of a library, that approach might work as intended, but AGPL does not forbid commercial use in general. To copy from [0]:
The basic obligations of the AGPL which set it apart from other licenses
are as follows:
• Any derivative works of AGPL-licensed software must also use the AGPL.
• Any users of such software are entitled to the source code under the
terms of the AGPL, including users accessing it over the network such as
with their web browser or via an API or internet protocol.
If you’re using AGPL-licensed software like a database engine or my own
AGPL-licensed works, and you haven’t made any changes to the source code,
all you have to do is provide a link to the upstream source code somewhere,
and if users ask for it, direct them there. If you have modified the
software, you simply have to publish your modifications.
A licence which specifically forbids commercial use is by definition not an Open Source licence. This topic turns up a lot, here's a good bit of writing on it. [0] (Such a licence would also fail to qualify as a Free Software licence.)
The interesting thing about the OS.Cash license, is that Nestor can optionally handle all of the negotiations, sales, billing, litigation, etc for a revenue share for developers that don't want to deal with running a software licensing business.
Yes, I was inspired by djrobstep's work and many of the analysis queries that pgmigrate uses to generate a schema dump come directly from schemainspect (the library that migra uses underneath the hood). Migra targets a different kind of development flow but it is also in the migration space. My tool, pgmigrate, would be a good way to apply migrations created by Migra.
It is unfortunate that the Migra project is abandoned, I believe djrobstep has gotten into political advocacy and spends most of his efforts on things other than programming at this point. I say unfortunate because he is extremely talented and I have learned a lot reading and working with his code. Hopefully he comes back at some point to help transition Migra to some other maintainers and fix the website and such :)
One question I'd ask him (and anyone else reading) is: what are some other options for monetization?
Over the last few weeks I had three different VCs reach out to me about some of the open source projects I've been releasing, and ask me if I'd thought about making a business out of them. I told them that no, based on the problem the software was solving, I didn't see how I could adopt open-core or companion-saas business models, and I wasn't sure how else it could be done while keeping the code open source.
Can anyone suggest a viable business model that would allow:
* Code remains at least source available, ideally open source for non-commercial use.
* I can charge for commercial use.
* Actually doing the licensing is reasonable, ie no spyware or phoning home from the tool.
Wouldn't need to be perfect, I understand that if the code is open source a company could easily fork and use it without paying me. The idea would be to make it zero-headache to pay me for a license if the code is being used by a funded team.
The projects:
* https://github.com/peterldowns/localias
* https://github.com/peterldowns/pgmigrate