Short answer: Yep. And even for developers in western countries there is still the hassle of pushing it through purchasing.
Long answer, hopefully really thoughtful and careful as I've had time to think this through:
I think I remember sponsoring Caddy when it was still an open source project. Not much, maybe USD25 or 35 or something (dinner level or something I think it said).
Also I think they got a grant or sponsorship from Mozilla.
I never used it though, I only donated because I was enthusiastic about him creating a nice open source project that I would likely use in the future.
Next I know it is a commercial project, more or less (it took a while before I realized he had left a way around it and it seemed entirely intentional that it wasn't obvious.)
So now I have helped someone start a business, which is nice but not what I thought I did when I donated to a permissively licensed open source project. (I thought I was helping create a new Apache server.)
Still no big problems so far in my case, I'm lucky that USD25 is not much in my case and he probably deserved it even if it left a small sour taste right there and then.
The bigger problem is I never started using Caddy because when I came back to use Caddy I had to consider if my use case would be OK, if I would have to pay a license (which is fine with me but an extra hassle as it has to got through my boss) and suddenly it was very easy to fall back to Apache.
Suddenly instead of helping kickstart an open source project around a product I loved I've helped start a business with a product that I can't use.
One of the things with using commercially-licensed components like this in your stack is that is greatly increases complexity.
You have to worry about counting instances vs licenses. This might sound trivial, but months down the road, are you still remembering to go through and check which licenses are affected anytime you make a change to the number of instances you're running? Can you spin up another instance or two to handle a load burst, or does that violate your license terms and/or require a purchase order go through finance first? What about dev/staging/testing stacks? Can you spin up a replacement for your production in a blue-green deployment and flip, or do you require 2x licenses?
If the license is enforced technically (eg, a license file) then you have to also have that as part of your deployment, but also make sure you secure it. In the worst case if the license is unique per instance, that pretty much precludes use in modern "cloud" environments.
What guarantee is there the cost won't go up 10x come renewal time next year? If it does, what does it take to replace the component? As others have pointed out, you also have to go through purchasing and maybe convince someone(s) that this purchase is necessary, etc.
This is all extra cost (time) and pain that really doesn't exist with using OSS -- and brings it far above whatever the list price is (even if it's "only" $25/node).
Also, from a developer perspective, none of these problems are fun or interesting to spend time on. Even if it has some feature that's missing in the OSS equivalent, I'd way rather spend my time building out a missing feature than doing licensing paperwork.
They have had startup pricing of $20 per month for unlimited instances, which is what I've been paying. Though mostly I've just installed the free version with the HTTP ad header.
Yeah, but it's still a lot for a small project which might easily run on a $5/month VPS. If your project is bigger than this then you don't gain much benefit from caddy: you might as well take half a day to setup certbot with nginx.
>> When I was a student I did managed to buy several software packages, with student discounts, at prices that would be around 100 to 300 euros nowadays.
Did you buy all of those packages yearly and for every one of your clients?
$25 / instance / month. So if you have 5 side projects that make you no money and you want play around with some load balancing, etc you will probably have 3 sites with 1 instance an 2 with 2 each, so 7. Then you will want to play with some docker swarm clustering or whatever and you spread around your instances a bit and you end up with 10 instances. That is $250 / month. Not $250 one-off, but every month. Now you are paying $3000 per year for you side projects.
$2000-3000 per year is not something that I am willing to spend on my side projects.
Software costs nothing to replicate. It's more advantageous to give hobbyists your software for free since they will not pay for any software and you can at least use them to make your software more popular.
You can not make money selling software to people who have $0 budget to buy it. Sell software to enterprises and give it away for free for OSS side projects.
Because enterprises take it for free. The way you can prevent this is to use AGPL licensing and charge money to use it under a comersial license.
The problem is now no one uses your software because there are endless amounts of more permissive open source software available that work just as well.