Hacker News new | past | comments | ask | show | jobs | submit login
A handy guide to financial support for open source (github.com/nayafia)
146 points by SenHeng on Aug 29, 2022 | hide | past | favorite | 77 comments



I want to submit a PR to remove Caddy from the "open core" category... or at least add it to several other categories which helped make it possible for me to work on Caddy full-time. Open Core did not work for us (hence the link to the retrospective).

At first it was a donation button, then an award from Mozilla (MOSS) -- kind of like a grant but they emphasized it was not technically a grant, probably for legal reasons -- that gave my college student self 6 months of runway while I finished school. Then I continued worked on Caddy while in graduate school, until I got hired by Ardan Labs to design and launch Caddy 2. That ended just before the launch of Caddy 2, when ZeroSSL acquired the project and to this day I rely on sponsorships from ZeroSSL, Stripe, and several other sponsors to work on Caddy full time.

"Sponsorware" doesn't really apply to us, but there are definitely features and fixes that have been possible because sponsors funded the work.

We offer some paid support too, but that's pretty time-intensive and doesn't pay the recurring bills, just one-off contracts.

I've rejected venture capital because it's not the right path for me or the project IMO.

Anyway, I wrote about my recommendations for funding open source projects here: https://matt.life/writing/the-asymmetry-of-open-source


How do you feel working full time on a tool, and not using the tool (which presumably is why the tool is valuable)? It's not just a paycheck, obviously. You could earn more working on something else. Did you just get "hooked" on an originally you project?


Good questions.

I use Caddy often. Even some of the features coming out next month are based on my own needs. So that's a plus: it's not a project that's irrelevant to me.

True, I could earn more at a large or VC-backed tech company. But the flexibility of working on something of which I'm the world expert is quite satisfying and is paying the bills for now, so I'll probably ride this wave as long as I can or want to.

Building something from the ground-up and exerting so much effort to make it the best in its class has been invigorating, so you could say I got "hooked" on it. (But I do reject the notion that it's "my baby" as some people refer to it. It has over 300 contributors by now and I'm not sure I'm even the top code committer at this point.)


> I'm not sure I'm even the top code committer at this point

you are, by a lot:

https://github.com/caddyserver/caddy/graphs/contributors


Over all time, yes, but look at the last ~year: https://github.com/caddyserver/caddy/graphs/contributors?fro...


How do you become financially independent by developing your own Open Source project?

Short answer --- in most cases you don't.

To earn enough money to survive, most have to do something other than software development --- like provide a service, provide support or sell a non-open version. Becoming a charity (a software panhandler) is an option but most can't survive this way.

Down vote if it makes you feel better but the most obvious, basic fact remains --- open source devalues the work of software development --- and is thus self limiting. Do it long enough and financial reality will intrude and convince you that you need to do something else.


Your comment is incomplete, because in most cases you don't become financially independent by developing your own proprietary project.

Most proprietary projects also need to do something other than software development, including providing support.

Also, software development itself devalues the work of software development. That's what software libraries do. Around 1990 I would use Borland's graphics library, which came with the compiler I bought, because it was better than what I could do, and I had already paid for it.

That said, I agree that an open source product is NOT an effective way of maximizing wealth extraction. Even something as simple as market segmentation, like discounts for students, is difficult if that student can turn around and place it on GitHub.

Other options, like an OSS project funded by being cost savings to your employer (eg, to leave an expensive vendor, or to drive the supplier prices down), are easier to get paid for, though yes, also not enough to be financially independent.


because in most cases you don't become financially independent by developing your own proprietary project.

The last *job* I had was over 20 years ago.

And I am not alone --- I know others who have done similar --- but not by way of open source.

including providing support.

True --- but the difference is, I can actually *pay* others to do most of this for me. My primary job is developing new software.


Sure, and I made a living for 5 or so years selling open source software w/ support.

The thing is, both of use are in the small minority.

Few software projects result in financial independence for the original authors, open source or proprietary.

After all, selling something in Apple's app store isn't a sure way to earn money.


So what you're saying is that after 5 years of trying to make open source work, financial reality intruded and convinced you to do something different?

This places you in a little different minority than me. My current financial reality has convinced me of just the opposite --- that doing something different would actually be detrimental.


What I saying is the answer to "How do you become financially independent by developing your own proprietary software project?" is "Short answer --- in most cases you don't."

Therefore, your earlier comment was incomplete, as your short answer was also true for non-open source.

I 100% agree with you that open source software development is not a good way to maximize profit. I do not recommend it as a way to develop products. I recommend it mostly for 1) people with external funding, as with research grant funding, or 2) for projects funded by in-house cost reduction (your "open source devalues the work of software development", but with the qualifier that all reusable software projects devalue the work of software development, not just open source ones.)

Which is why in my comment I pointed out one of the (many) factors which make open source software projects harder to monetize that proprietary - the difficulty of adjusting price to reflect market segmentation.

I believe that bringing up structural examples like this are more relevant than pointing to, say, D. Richard Hipp as an example of someone making a good living primarily developing open source projects, or your personal anecdotes of how you and (a handful of?) some people you know profited well from proprietary software projects.


If you have an itch to scratch, and you are really good at scratching that itch, and if many have that itch or will get it, OSS will open a lot of doors for you. If you can build a OSS-ish company like supabase or n8n, good for you. But you stand to win anyway.

It's not as cut and dried as direct compensation for effort or time, but with some luck, you will get to places that a regular job may not take you.


If you can build a OSS-ish company like supabase or n8n, good for you.

Notice that one of the first things you'll find at the very top of these company's web sites is *Pricing*.

These are primarily service providers --- with a limited/non-tested/demo/??? version of the source available --- mainly for marketing purposes.


Software has no intrinsic value. It is harder to convey value of any kind unless it makes life easier somehow. But soon it gets replaced in a cascade of new solutions from the future that are hard to predict.


So you're telling me that my software doesn't make life easier for my clients?

It's pretty obvious that they disagree; otherwise, they wouldn't pay me. My bank account has the proof to the contrary.


That's extrinsic value -- the value is derived not from the software itself, but from the gain in quality of life it gives your clients.


It is hard(-er) to convey value of any kind unless it makes life easier somehow.


What software doesn’t make life easier? Why would such software ever get built?


Adobe Flash and Actionscript 3.0. As for why actionscript 3.0 was made it was built I think Adobe wanted to turn Flash into an application programming language. And it failed pretty badly at this. Actionscript 2.0 had a well defined purpose that is to control animation. But Actionscript 3.0 became a monster that imposed a lot of work to do those basic things and it really did not excel at anything beyond that.


Why does anyone use them if they don’t make life easier?

They must do, otherwise nobody would use them.


Because they are or were fooled like me.


I am so grateful for open source software because it is a huge sacrifice for someone to develop it for free when they could easily charge for it, and would be totally justified in doing so.


Sure, if someone wants to make the sacrifice, by all means go for it.

But the point is that everyone needs some financial return on their work in order to survive. And a sacrifice may not be the best plan to obtain it.


> open source devalues the work of software development

Deprices, not devalues.


Tomato, to-mato.


Software is trivial to make, it should rightly have no value.


That's like saying that words are trivial to write, so books have no value. While it's trivial to write an "if", it's not trivial to know how to write a lot of "ifs" to make an IA that people find useful. And that knowledge is where the value of software resides.


> Software is trivial to make...

... after one has developed countless man-years obtaining knowledge of how to solve complex problems.

Actually, you know what? Still not trivial.

It's easier for people with the desire to do this type of work. It's easier depending on the domain.

But it's not "trivial".


Have you ever developed software?

It consumes the most precious, valuable thing you will ever have --- your time.

Time is more valuable then money --- you can always get more money but you can never get more time.

*Your* time may not have any value --- but mine does.


Everything takes time. Something has (exchange) value if you get given something of value in exchange for it. Something has (intrinsic) value if you value that thing itself to give value in exchange for it, even if nobody else would give it any exchange value. This could be due to scarcity, sentimentality, or rarity.

Unless you're deeply sentimental about the software you've produced, it has no value.


Everything takes time.

Everything that takes time costs money. Why is software an exception?

Try telling a carpenter or an auto technician he shouldn't be paid for his work time because "everything takes time". How did software developers take a left turn at reality?

it has no value.

I really don't care as long as people pay me for it.


Look up the term "public good".


This list is maintained by Nadia Eghbal of "Working in public" fame. Great summary of the different mechanisms.

I'm working on something in this space. Would love some feedback. Putting final touches to it at https://thanks.dev. The concept is "my donation should distribute across my dependency tree".


There are a lot of competitors in this space, everything from for-profits like Open Collective to non-profits like snowdrift (which isn't live yet).

https://opencollective.com/ https://snowdrift.coop/


You ate my back button on iPhone and I couldn’t return.


Apologies for that. I've disabled the default redirect to /home for now so that shouldn't happen anymore. Will figure out the correct solution asap. Thanks for letting me know!



Following this hint turns out I had left out the `replace={true}` prop on react router's Navigate component. Thank you for taking the time to point me in the right direction!


My approach with Code Hike (https://codehike.org/) was to add a sponsor-wall to some parts of the docs, not sure if it falls under any of those categories. It's working decently well ($600 per month).


> https://codehike.org/demo/scrollycoding-preview

> The code of this demo is hidden until it reaches five sponsors.

> Become a sponsor for $9 a month to have full acces to all demos:

Maybe I misunderstand, but I could either pay $9/month and would be able to access it directly, or I wait until you get 5 more sponsors (for that specific page) and then I'll be able to access the content for free, like everyone else?

So if I end up sponsoring the page to view it, I could end up being the fifth sponsor, unlocking the page for everyone and ultimately spent the money for content that now everyone can view too?


that's right


yeah, whats wrong with that?


Probably would get much better results if it said "$50 bounty for this demo" or whatever, and collected pledges of any amount, instead of hoping for exactly 5 whales to show up.

And making a subscription makes the value prop even more confusing.

Seems like an own-goal.


That's quite an interesting approach. And congratulations on getting Meta to sponsor your project. Even if they are only giving you $9/month it must still feel like quite the validation.


Thanks. Meta made a generous one-time donation via Open Collective https://opencollective.com/codehike


Good software needs no docs.


See also prior HN discussion:

- https://news.ycombinator.com/item?id=15784448 (2017, 51 comments)

And this featured a couple more times, and some other related links too: https://news.ycombinator.com/from?site=github.com/nayafia



I recently switched a couple of my projects to non-commercial:

https://polyformproject.org/licenses/noncommercial/1.0.0

I would recommend it to anyone, but it does have some drawbacks. Notably, GitHub and the Go programming language refuse to support it:

https://github.com/github/choosealicense.com/issues/1015

https://github.com/golang/go/issues/54683


More resources for paid open source work:

https://github.com/fossjobs/fossjobs/wiki/resources


Wow, very useful. Thanks for sharing this.


I have a project I'd like to make available to all as open source if I had some kind of contributor backing. I've had an inquiry about it already. So I think the project could have value to people looking to explore sounds of instruments in the orchestra especially since it can be easier to get satisfying results with the system I am working on compared to expensive and clumsy systems already available.

The problem I have is that just putting the code out there hoping that there would be interest is a bit like putting baby in an orphanage hoping someone will adopt the project when I would have to move on from it anyway due to no money coming in from other sources.

I love free software and my entire software world IS free software now with pretty much no exceptions. I'd like to contribute back to a community that has given me access to some of the best software I've used to date.

But I'm poor, hard to employ, and have skills or strengths that are in an unusual combination.

I like Ton Roosendaal's approach with Blender. I've been following his story since the late 1990s when I was using Lightwave 3D. I bought his book and tried to use his software but could not figure out what to do with it at the time. I think the book was unprofitable for him as it was expensive to make. But I observed his software get more and more powerful to where I am finding it easy to use Blender today. I don't know if Ton has financial difficulties I sure hope not but it seems he has some kind of support.

I'm not as talented as Ton. He could program great software without the niceties of Stack Overflow and all the learning help I have now.

But because of the talents of so many people I can make reasonably good quality products from my software and have ideas to make it a lot better than it is now.

I could do this over and over if I had backing.

How did curl and wget make it? And so many other tools that are simply taken for granted.

I really want to have creative control of the development of my software and I really don't want to see Adobe or Amazon to snatch it up, package it, and sell it as a service under my nose making tons of money where I am hoping to find enough work to pay my electric bill and subsidized rent.

The framework I'm building could be adapted to so many different ways of making melody, harmony, and rhythm. There are thousands of files from great composers that don't get much play time which can sound very interesting in instrumentation that they weren't written for. The software can be a great way to explore composition style and get ideas.

Although it can offer sonic realism I don't want the software to replace human performance. I really want it to be a starting point for developing new compositions worthy of being performed.


It's all about finding or creating something that is actually scarce, unlike the open source software itself: https://journal.dedasys.com/2007/02/03/in-thrall-to-scarcity...


Uh, wow, ok. What don't people get about this? If a good is non-rivalrous and non-exclusive (or close to it), it's kind of tough to get people to pay for it, so you have to find something else they'll pay for.


> Restricted licenses (reminiscent of the older shareware movement) are not open source

I can look at the code. Seems open enough to me [ducks from tomatoes].

People play the semantics game on this a lot but the source is viewable/available/stealable by anyone who wants it. Hackers can find bugs to either exploit or notify the maintainers of and people can modify it to better suit their needs. Legitimate businesses will buy a license if it is of worth to them, I doubt you'll find many that are overpriced for their value.

The fervent animosity towards dual free non-commercial/paid commercial licenses in the foss world has always puzzled me. In the end it is source code readable by anyone yeah? What would you actually prefer, it stays locked up forever?


What they would prefer is that you continue to offer up your unpaid labor that they can then use to build fortunes upon. It is no accident that businesses are happy to encourage "open source" so long as that means "make us stuff we can use to make money with without paying you a dime". "Open source" has never meant you couldn't charge for your work or otherwise impose a noncommercial use restriction on it, though the OSI and its pro-corporate partisans have gone to great lengths to claim otherwise (much like they like to pretend the invented the term and/or the concept).

At the end of the day I don't work for free, and I'm pretty sure you don't either, so if you want to get paid for what you do then make them pay you. The End. Full stop. HAND. TYVFM. FOAD. Etc. Ad nauseum. Anyone who says otherwise should not be engaged but simply told to get lost... because if they want Free Shit then they know where to find it.


Open source is never about you working for free or not being able to charge money for shit.


The OSI thinks otherwise:

> 6. No Discrimination Against Fields of Endeavor

> The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

-- Source: https://opensource.org/osd

They've been pushing this line for decades.


I see OSI version of open source as forced labor, the best I can do is open source my work, meaning make the source code open source, people can use it for free but as soon as you want to commercialize my work, you gotta pay.

If you anyone is about to say that isn't open source, well, there is nothing you can do about it, sorry


What use is accessible code if you're not (legally) allowed to do anything with it? It's a bit like having an all you can eat buffet but you're not allowed to eat the food only look.

I agree that there is one upside though, there's a chance the code can be used again after collapse of civilization when we find that someone made a backup.


I can think of one immediate example: Auditing it.

Open source means you can read the source code, which is a very powerful tool at your disposal.


I have over 750 thousand files in my root file system. I've never audited any of them. What about the libraries I use for my personal projects? Crosses fingers..


> Open source means you can read the source code

Note: It doesn’t only mean that.


> if you're not (legally) allowed to do anything with it

You mean make money from it? You're allowed to anything you can imagine for private purposes.

I was specifically talking about dual non-commercial/commercial licenses above.


> You're allowed to anything you can imagine for private purposes.

Not legally, no.


Non-commercial licenses are by definition not open source.


thats a semantic argument. "source available" is in practice the same thing as "open source", unless you are a business trying to make money off free software.


Does Unreal Engine make their source inspectable and modifiable?


> The fervent animosity towards dual free non-commercial/paid commercial licenses in the foss world has always puzzled me. In the end it is source code readable by anyone yeah?

Yes, but I cannot for example use it if I received grant to develop open source application.

Maybe above is overly cautious. Buy I have enough legal uncertainty with dealing how to tax grant income, I do not need more of it.

I would instead appreciate license even more toxic for corporations than GPLv3 - which would not block use by small players.

> What would you actually prefer, it stays locked up forever?

The problem is that it is usually alternative to free software/open source - not completely secret code.


> I would instead appreciate license even more toxic for corporations than GPLv3 - which would not block use by small players.

Something like the Reciprocal Public License? https://opensource.org/licenses/RPL-1.5


RPL still allows commercial use, so you might as well just use GPL


The fervent animosity towards dual free non-commercial/paid commercial licenses in the foss world has always puzzled me. In the end it is source code readable by anyone yeah? What would you actually prefer, it stays locked up forever?

The animosity comes from being tricked into vendor lock-in with "free" samples.

I would much rather have a paid free license than a zero cost non-free license. I'm always surprised more corporate/enterprise software doesn't take this approach. Have it be a full open source license, but only distribute the source to companies that pay for support contracts. Of course your paying customers could turn around and redistribute it, but most companies are risk adverse and would rather buy from the vendor. If you really can't handle some people using your new code for free you could have it be proprietary for a year or three then revert to AGPL or whatever FLOSS license you prefer. (which was mentioned in tfa)


> The animosity comes from being tricked into vendor lock-in with "free" samples.

Care to name one of these lock-in licenses specifically rather than generally?

> I would much rather have a paid free license than a zero cost non-free license.

As someone who earns money from opensource software used by both companies and individuals I really have no idea what this actually means. Care to elucidate for the rest of us what a "paid free" or " zero cost non-free" license is? Literally just an example link to one of those types of licenses is all I'm asking here.


> The animosity comes from being tricked into vendor lock-in with "free" samples.

Care to name one of these lock-in licenses specifically rather than generally?

It's not the licenses, it's the tactics they allow. Microsoft giving away Office to schools for so long is why so many companies use it today. They are afraid of teaching their employees something new, so they don't even consider it. Because everyone realizes this, there is little competition.

As someone who earns money from opensource software used by both companies and individuals I really have no idea what this actually means. Care to elucidate for the rest of us what a "paid free" or " zero cost non-free" license is? Literally just an example link to one of those types of licenses is all I'm asking here.

I thought I was pretty clear, but I guess not. When I said "zero cost non-free" I meant any software that doesn't cost money, but does not give users freedom. An example would be Microsoft Edge. When I said "paid free" I meant software that costs money, but does give users freedom. An example would be RHEL, it was still free/opensource code but they only let paying customers download it from their servers. I'm not sure if redhat still works this way after the changes they've gone through since IBM, but that was their thing for a long time.


Paid free would be where you pay for an app and get the GPLed source code along with the binary.


> it is source code readable by anyone yeah? What would you actually prefer, it stays locked up forever?

False dichotomy.


It breeds animosity if a open source software project closes the doors to the original developers who intended the project to be free software. Plex is an example.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: