But the question is how do you sustain yourself while working fulltime on building/maintaining open source software
What are some tips to get into open source and turn it into fulltime career
For a long time, I had other jobs, working at startups around video, and doing VLC at nights and weekends and holidays.
And now, I built a couple of companies around Open Source multimedia, where we do consulting, integration, custom development around software, applications development, licensing, support and so on.
Those companies are now paying around 25 FTE. It's not too bad, but not impressive either...
The employees are working most of their time on improvements of the open source software, working for clients is a minority of their time.
But I've worked a lot, and by a lot, I really mean a fuckton... And the rewards are not big.
I would totally by VLC branded swag. Coffee cup, underwear, "I supported VLC and all I got was this t-shirt"... etc... Or maybe stuff more on brand, like bluetooth ear buds or something?
Lots of good will to be had by such a giant fan-base.
EDIT: Looks like they're already thinking about that. Hope they launch before xmas!
I think one piece of wisdom I'd share about sustainable FOSS for this thread is: be happy with a smaller size. A FOSS business is probably not going to be a unicorn, but hey, that's okay, isn't it? If you're building software you and your users love, and you're putting food on your table, then you've got something to be proud of.
I know this is a stupid question, but I tried googling and it wasn't obvious... what does FTE stand for? "Full Time Equivalent?" Does that mean they are paying for 25 full time employees?
It usually means either 25 full time employees, or a number of part time and full time staff that equal the paid hours of 25 full time employees.
e.g. 50 part time employees that work half the typical working week would be 25 fte
Thank you from the bottom of my heart for VLC!
In my case, we'd carried my tiBook up to the lawn on the front of the Hollyhock house in LA (Frank Lloyd Wright house), and watched Blade Runner on a blanket on the grass
with the house in the background, as that glorious California sun set in the distance. My date was most impressed that we were having an outside movie date in that way ... it was pretty neat to have such freedom on a picnic date. (She wasn't as impressed when I checked my email over the Ricochet modem I had though, even though it was frickin' awesome at the time..)
Been a VLC paid subscriber for almost 20 years now, as a consequence.
That's actually really impressive, that software of such outstanding quality can be built and maintained so efficiently. It means that great things could be achieved if people bothered to fund FLOSS more, or if effective funding models (a combination of paying for ongoing support + crowdfunding for general development, most likely) became more widespread.
Opensource/free software powers most of the stuff we take for granted. The software and their maintainers are equally taken-for-granted.
However, a lot of open source projects are, frankly, extremely rude to users. Instead of some copy-paste "kindly please direct your question to this resource over here" the users get "GET THE @#%% OUT OF HERE STUPID N00b" and this is from people directly with the project (e.g., domain email address).
If you think this doesn't impact your donations and recognition, please rethink that a little bit further.
As some anecdata: My experience in various open source projects as a submitter of bugs, fixes and features has been welcomed with respect and understanding even when we don't agree or I turn out to be the ignorant one.
I have seen projects where devs are completely behind a wall, and that's fine, but I don't understand make something for people to use, free of charge, get angry at when lots of people use it and have questions about using it.
I don’t work on open source much (a few lines over 20 years), but the only patch I made was super welcoming and a dev bent over backwards to teach me how to diff and submit patches. I just assumed this was common.
This is kind of what I'm trying to address, which is the belief that the creator of the project is owed something and thus also free to be a jerk. Most users are not going to donate money, but some of us do so on occasion. I usually donate when a project is in dire straits just because I don't have a lot of cash floating around for myself, though over the decades this has added up to thousands of dollars donated.
However, when I see a project has been rude to users, or even actual experience see a project desperate for funds that was rude to me, I don't donate a thing no matter if I use it a lot. I don't believe in treating users like doormats and won't support it.
FOSS projects are just a reversal of the roles. They let the creators react more honestly. You're not a paying customer, so don't expect to be treated as if you were the developer's boss.
> VLC is like a part of culture at this point.
Pretty much, as soon as he said he worked on VLC I saw the cone in my head, and then remembered how many times I installed into people's machines so they would stop having codec issues using default software.
Thanks for working a fuckton, OP!
It's our secret goal: the cone religion! :)
That's also true, but does that sentence sound like the truth? Is truth and/or accuracy the most important trait of the sentence, or even a significant trait?
As soon as you're famous enough in a particular field, companies will hire you just for your name. Doesn't matter if you don't do much useful or only work one day a month - they'll still pay you decently to have your name associated with their brand and products.
In our short time in this world you literally helped make my and many others' lives better.
I know whenever something fails, "VLC will play it" – and that's the advice I give if someone asks me how to open a file that isn't mp4, etc.
Thanks for an awesome project and I am actually happy to hear that you have 25 people and what seems to be a sustainable business.
VLC is like a part of culture at this point.
Might not be much, but community respect and appreciation is something, it will definitely get you fed and beer'd.
Although ideally you'd want to have the money not the admiration. :\
Admiration is un-valuable. :D
And we have a lot of research and projects, that we never get released, and other people use the tech, rewrap it and get the $$ :)
VC funding, I hear, is more about the people than the ideas. It can also be cliquish. It might be worth asking a friend who's received such funding for some constructive criticism on your approach. If you don't have one, make one.
On a certain level that's akin to a tenured professor with a perfectly fine University career complaining he has little chance of ever being awarded the Nobel Prize.
Ambition is great, but do not let it cloud your sense of pride in your achievements. If you're not content being 90th percentile, what gives you confidence you'd be happier being 99.9th percentile?
You clearly haven’t run a small business. It’s more like being a dairy farmer where if you ever fail to make hay, every thing dies. There are good times and bad, but you are never free from the sword of Damocles.
For those who do not like the "risky" nature of it there are stable careers to choose from with monthly paychecks and health insurance.
Who ever guaranteed each and every hardworking software/tech business owner a $100 million exit event handed to them on a silver plate by a VC firm? Entitlement is not a path to happiness.
At least in France you and VideoLAN are generally one of the first replies when someone ask about libre software and opensource in general. But yeah exposure don't pay the bills, unfortunately.
What are your thoughts about software crowdfunding approaches like patreon “$1 donation per donor, per version release” and similar?
Everywhere around me, I see companies who expected to go big and profit on IPO failing. Nothing new, but I get the feeling it's getting harder to attract investors in that model (this was already a feeling I had before lockdown).
This kind of company you're building, who focus on profitability from contract work while working on the big picture between two contracts, may just be the most stable kind of company one may build, especially if you happen to have a low turn over.
We don't. Clearly not. People leaving is very rare.
But also, our recruitment is very different from normal companies. :)
Would you mind telling us more about your recruitment process? I'm not in a hiring position myself, but I guess it would be of value for a lot of people here, giving how turn over is a serious blow for everyone.
So, in general, I ask 2 main questions:
- talk to me about you, what you like and which project you worked on that you liked.
- a generic question, that can be a bit misleading, on purpose. Like "What is the difference between TCP and UDP, and is HTTP over TCP or UDP?" for webdevs or "What is the =0 in C++ classes headers? Since NULL and 0 are the same, can I use "=0" here?" for C++ devs, or "How would you improve C if you could?"
The first type of questions see if the person truly likes software development, and is not here just because "that's what cool kids do" and that removes a lot of bro-grammer.
The second is more to see the generic culture, and if the person was curious enough to look a bit at the core of the technology they are working on. Because there isn't a yes/no answer, you must discuss.
And also, I need to meet in person. No 1hr phone-call, no white-board, no multiple meetings, no complex CS question that anyone can prepare.
I have one big issue with recruitment process: when I meet people, after those 2 questions, I can know very quickly that I don't want to hire them. If we are in the first 5 minutes of the interview, how can I tell them "no" without being too rude?
Finally, the culture, and the political culture of the community must fit. And unfortunately, sometimes that shows on the resume/introduction mail. But to be honest, it's rarely been an issue, except for one intern once.
It sounds like your questions are calibrated to detect if the interviewee is passionate. I totally get that, 15 years ago, it was obvious everyone around was, but those last years I find myself wondering more and more if devs around me didn't get into coding just because "it's a good job", and it looked slightly more interesting than a career in law or commerce.
> I have one big issue with recruitment process: when I meet people, after those 2 questions, I can know very quickly that I don't want to hire with them. If we are in the first 5 minutes of the interview, how can I tell them "no" without being too rude?
Been there, I feel the pain :) I had briefly a job as a manager, and I knew it was not for me when I started to panic about how to tell people I won't hire them. Still better than to have to fire them, but damn, finding a proper way to say "you're not good enough" or any other reason is brutal.
Anyway, thanks for taking the time for sharing all of that with us.
Yes, passionate, so they will work on something cool, and are going to like it. Not passionate in the sense "I can pressure 60hours from them per week" like some SV startups do.
Please could you share a bit about what your recruitment strategies look like? And do you all work remote?
2~3 years ago, I contacted j-b on IRC and got an interview.
This was the first time I used IRC to find a job :)
Well, to be honest, I'd love to extend what we're doing in VLC to other end-user applications like PDF reader, or the basic apps you have on Android and iOS.
I never said this file wont open in my system, thanks to VLC.
gives Intuit the stink eye
Another 1099 example: For most states Stripe won't issue you a 1099-K if you don't meet both $20K volume and >200 charges. Is Stripe shady?
When you actually understand the system, it makes sense why it is the way it is.
Countries like Estonia prefill the tax filing and they say somewhere above 90% of people don't need to make any changes when they file. Most people file within the first day and get their rebate within less than a week. If you had no significant changes (eg opened foreign bank accounts or sjmjlsr) you likely have no need to change anything. There's little fraud possible as data gathered is good and even less mistakes are possible. No one spends a day on their taxes and few need tla tax advisor for regular filing. This is increasingly common across at least Europe but sadly in few countries does it reach such sophistication yet.
Are you sure the US system works that well?
Isn't that just an escape hatch if you do have additional income to report? The tax office should present it as such. Here, the tax office gets that kind of report from a bank. If I agree that it's correct, all I have to do is sign a prefilled form digitally. Unless I've generated income elsewhere, doing the taxes as an employer literally takes less than 5 minutes.
I'm sure the tax authorities would like argue it is income, if you're making $8K monthly on patreon (e.g. Dwarf fortress creators).
Which makes me wonder, is there some other way to aggregate donations such that they are gifts?
And “give €5 and get a sticker” might make it a sale, making it subject to VAT, too.
Overall I invested a lot more time in it than the monetary reward I received. I don't complain since I enjoy working on audio/video fingerprinting and databases. On top of it, the pay at this stage is on par with a regular SE job with the bonus of working on things that I enjoy. I can call it a bootstrapped business now.
In some sense, I think about opensource similar to the work of art. You do it because you genuinely like to create/build things and showcase them to the general public. You don't do it because of the monetary reward. A good writer is one that has to say something, not one who writes for the sole purpose of getting on the NT bestselling list. Opensource is similar.
 - https://github.com/AddictedCS/soundfingerprinting
 - RAM-based storage, bounded by memory limits
 - https://emysound.com
Other use cases are divided between game development, repeating content detection, robocalls detection, or just iOS/Android apps for Shazam like style features.
Surprisingly a couple of times, I was asked about recognizing birds by their singing. The library can't do it, but it is something I am thinking about exploring one day.
Hopefully, it'll be easier than this: https://xkcd.com/1425/
Eric S. Raymond answer was: Be independently wealthy.
I have tried to reach billionaire philanthropists (Bill Gates, Steve
Wozniak, Dean Kamen, Warren Buffet, and others) with the idea that
there are very talented people around who have brilliant ideas (say
for instance another Newton or Mozart) but are not financially
independent to afford to work on those. Among good places to look for
such talent is to identify and support important or promising open
source projects and people behind them. But none of them bothered to
I think really wealthy people have two problems when it comes to this: (1) there are a lot of people out there who want money but can't deliver. (2) many of these wealthy people, like the guy I mentioned above, want to be actively involved in solving problems. He didn't want to give money to OpenSSL because his only role there would be giving them money. Instead, he wanted to create some organization with his name on it so that he could be seen to be doing something.
: I don't remember exactly what his proposal was, but I remember thinking it sounded really bureaucratic and unlikely to have any real benefits in practice.
It's not that they don't want to do good - it's that they want to maximize the value from the good they do.
Your solution to this problem seems to be focused on what other people can do to make things easier for you and others like you, but that's not how humanity works.
You're ignoring that your request is unreasonable because you're taking the easy way out - looking for a source of money and convincing yourself that your efforts deserve it because it's easier than doing the work yourself.
Stallman is right. Live cheaply. If you prefer, work full time at a well paid job and use your own money to support open source development. The rich aren't obligated to hand you money because you believe you're doing the right thing.
Also, I don't understand why people seem to expect a reply to a (probably) cold email.
> use your own money to support open s...
Why should he feel obligated to support others?
> Be indepenedently wealthy
Both are very good suggestions. And I don't think there are better ones around.
Identifying a Newton or Mozart is a bigger problem that financing them, I think.
It would be interesting to see what people like Linus Torvalds, Richard Stallman and have been offered by the rich to continue their work. They are worth billions but I suspect they only see a fraction of that sum.
This is a major failure of free and open source, not having a business plan at all while those who do have a business plan, Google, AWS, Microsoft are reeking in the billions in profit from the free labor provided by foss-developers.
Why cant developers of the software (say coreutils) make profits on it? Why cant developers put constraints on the softwares usage, ie you arent allowed to use it unless you pay. Pay to buy software freedoms model.
Meanwhile, Microsoft/Google is using the same software to make a profit and it says to its customers "pay monthly to be allowed to use this foss". Thats all fine. Strange.
I agree. So many developers would simply like to sell their open source product so customers can run the product themsleves. It's simply impossible.
It's ironic that so many SaaS businesses are built on open source - a model that gives users even less control.
My recommendation is for developers to consider the 'source-only' option: you charge customers for your product and provide the source code. The code is not open source, but it still gives your customer flexibility to adapt the product to fit their needs.
There are successful examples of independent developers making a full-time living using this model, some even publish their source code on GitHub but rely on the honesty of their customers to not redistribute the code (examples include Kirby CMS and Craft CMS).
By the way, the GNU Project (supported by the Free Software Foundation) has never updated their advice on selling open source software to reflect reality. They still advise developers to charge for support or documentation (deeply unpopular with developers and customers). Or charging for distribution of software. This might have made sense in an era of software CDs and dial-up internet but make no sense in a era of broadband and GitHub:
If I ever develop an open source software, I’ll definitely ask for tiered licensing cost, something like redisdesktop.com.
Conflict with my day job is also one of the reasons why I don't take donations. There is some benefit to that though because it allows me to take a day/week/month off if I need it without feeling guilty. Once there is money involved, there are a lot more expectations and I think I would have a harder time putting it down.
If you’re looking to make money, I don’t recommend you get into open source. I wish this weren’t the case, but this is the current situation.
Unfortunately, it seems the best path if you want to do open source as a career is to do enough open source to get your name out there and then leverage that into a job offer at some megacorp. Maybe you’ll be able to get a role doing open source, but that’s rare. Hopefully you can continue to do open source in your free time at least.
That said, if you insist your goal is to get paid doing open source full-time, here are my tips:
1. Create a project that is end-user facing. No one is aware of which transitive dependencies they are using, so no matter how useful your software, you’ll struggle to get donations, sponsors, or consulting work unless the end user knows your name. Reliable, error-free transitive dependencies are invisible. Therefore, the maintainers are invisible, too. And, the better these maintainers do their job, the more invisible they are. No one ever visits a GitHub repository for a transitive dependency that works perfectly – there’s no reason to do so. But a developer investigating an error stack trace might visit the repository if for no other reason than to file an issue. At least then there’s a small chance they’ll see the maintainer’s plea in the README. (I wrote more about this here: https://feross.org/funding-experiment-recap/)
2. Make sure it’s something that the enterprise cares about. If you build a cool P2P project or a new programming language you’re gonna have a tough time. No matter how useful or innovative the project is. On the other hand, if you’re making a front end framework or a UI library for React or something like that, you’ll have a much better shot at getting companies to sponsor your project.
3. Don’t be afraid to ask for money. Contact companies that are using your library and tell them you want them to sponsor your package. One great hack for finding out who is using your package is to open an issue called “Who is using this?” and ask for testimonials or offer to put users’ logos or links in the README under a “Who uses this” section. Lots of developers will out their companies as users of your package if you do this. This gives you a good list of companies to initially reach out to. Without tricks like this it’s impossible to know who’s even using your package. That’s the first to step to finding sponsors.
This is where I fall over - damn my parents for teaching me to feel guilty about asking for money!
> One great hack for finding out who is using your package is to open an issue called "Who is using this?" and ask for testimonials or offer to put users' logos or links in the README under a "Who uses this" section
This is a fantastic idea - I'm going to try it! If companies don't know I'm open to the possibility of advertising their logo on my website (in an innovative way, using my library) then how can they consider giving me money for it?
Especially in those situations, doing right by one another depends on a rich environment of information about costs, benefits, needs, and opportunities. You have to talk frankly about your time, money, and interest, and you have encourage and listen to others when they do so. Otherwise, nobody can have any confidence that people are being treated fairly, rather than seething or starving in silence, and good work is being rewarded.
I've tried in the past to write up a few of the basic lessons we all learn the hard way in freelance work:
To spoil it:
Give as you take.
Talk frankly about time and money.
Slice the pie fairly.
Keep your integrity at all costs.
Pay help forward to new people.
Honest pay for honest work.
In fact, from the perspective of the bigco, there seems to be a thriving ecosystems for leftpad-style packages already even without additional money pouring in. Why subsidize it to become even bigger?
Jack Dorsey has Devs he pays in BTC whose sole job is to contribute to Bitcoin Core development and nothing else , they have no affiliation to his companies other than that.
Also, he's an investor in LN labs who are technically their own thing led by Starkbot (Elizabeth Stark) .
So, it can and has been done.
Personally speaking, a lot of the 'how would it ever work...' questions that come up here that are thought to be seemingly impossible to solve have often been pilot-tested inside the cryptocurrency space to one degree or another, so if nothing else I hope most of you can find value in that 'us crazy people' are actually pushing the envelope in the edge-cases of innovation.
For example, because many of us have been proponents of UBI (from various source points, mind you) from either a pragmatic or an ideological standpoint, we've tried to see what verifiable widescale UBI deployment (in Iceland) would entail back in 2014; it failed, as many of us expected it would, but we tested hypothesis whose data could ultimately be used later to iterate and improve a system.
Everyone has costs for things like shelter, power, food, water and other necessities, there is a need for some form of income.
I certainly think they should fund projects based on quality, as your reputation for quality increases I would hope that your ability to bring in sponsorship would be higher, though it's also a shame that people need years of their own funding to break in to open source software development properly full time. In many ways, open source development is only for the privileged/rich.
I have no idea how a small developer could ramp this up, but for a larger project, the approach appears to be to form a foundation, and to give contributing companies a chair that's closer to the table.
So writing and releasing OSS may not lead to direct monetization opportunities, but it can be a great way to get in touch with enterprises and to get demand readings quickly.
Their website doesn't seem to mention that in any way. :/
The code is all MIT license and we're working to make it easier to self-host. I make money through providing a hosted version of the product.
It's a similar model to Sentry or Gitlab. Open-source does not have to be libraries and frameworks, there are good opportunities to build more traditional SaaS products that can be self-hosted and you can make money by selling a hosted version.
I understand that not all open-source projects can be funded this way. Once I can pay my own salary, I'm planning to set aside a percentage of revenue to fund open-source projects that Plausible itself relies on.
One advice: Make it easy to self host. I can see that this is not the case, perhaps not your focus currently. That will give you hundreds of free testers, that will provide QA to the solution you're making money creating. It's a beneficial cycle.
At the moment I'm supporting some external contributors who are working on the self-hosted version. If things go well, we should have a first release next month or so.
While this is technically open source, it's not easily reusable as per your own FAQ and as such this is more of "open sourced for marketing reasons." You aren't really living off making an open source project, but rather you are open-sourcing a part of your service that pays the bills.
I'm pretty much sure that wasn't what the OP was asking about.
Features I'd like to see:
1. Search terms from referrers, or anything else that will help me focus for SEO type stuff.
2. Much more detail on the Device section. It's material to my design choices whether I have a lot of people on 4" smartphones or 13" tablets and so on. Right now I would have to capture that info separately.
3. More specific geolocation data: drill down at least to the state/major-metro level if possible. Or explain up-front why it's not possible.
I think the starting price is low enough, and gating it by page views is nice, so I'll probably give it a shot when I do my little redesign.
If I ever got to the point of needing the second-tier plan, though, I'd probably want more info than you're providing. Your prices are low enough I could imagine doing both (keeping Plausible and building my own) but it seems like a missed opportunity.
Best of luck with it!
I spend about 1/2 of the time doing services and 1/2 hacking on the software. Quite often, customers are paying for new features in the software so it is paid hacking. Great!
But there's also some good monetisation strategies:
- Consulting, at the bottom of your project "Hire the creator"
- Donations, at the bottom of your project "Donate here"
- Open-core, have an open-source core and a premium version with more features (these suck)
- Sponsorware, Open-source the library after enough people have paid you for it 
The easiest is to create open-source projects in your day job (where needed). It makes for a better architecture of modular components and plugins and helps you learn open-source development without the pressure of making money from it.
Out of genuine curiosity, are there some egregious examples that merits (these suck), or is it more of a blanket statement?
I would love to avoid making those mistakes.
The incentive of an "Open-core" business is to convert people to the premium version of the product.
This has the effect of hindering/restricting development on the community/free-version, as it's vital that the community version needs to be worse than the premium version.
Almost any monetisation strategy has this effect on open-source though. Say for example consulting; if you're paid to help users setup/configure your project, then your incentive is to have people struggle with your project so they need to pay you for help...
As you can tell I'm a little pessimistic, but in my opinion almost any project that is open-source and trying to make money off it's users, has incentives that will negatively impact the project and it's users...
Hope this helps, I'm still open to projects which have any of these monetisation strategies, but they have to be of much, much higher quality for me to seriously consider.
I can see there's a whole ecosystem built up around kubernetes, cloud management and microservice meshes, for example. You can set it all up for free using the FOSS offerings but it will sink a lot of time learning how to and maintaining the stack. Or you can pay to use someone elses "batteries included" distro which can be deployed with a few commands and save yourself a lot of time but spend $$$($..$??).
As long as projects don't actively refuse to accept contributions to the core, respond well to issues, document stuff well and keep a nice pluggable architecture allowing other people to fork it and hack in their own features, you're allowing people to choose between time or money.
Benefits of having a "pro" version also filters down to the open core - if you're wanting to market your product to businesses, you're likely going to spend more effort on making it more user-friendly and therefore documentation and howto guides become more slick and comprehensive.
TimescaleDB is a good example - everything is open, but most is open source. The only parts that you need a commercial license for are "obviously" enterprise/scale features.
I use TimescaleDB in my ISV, and think it's a fantastic tool. Should I ever need the enterprise features, I would gladly pay for them and fund maintenance and growth of a tool I love.
It occasionally felt like "open source is a good marketing point, so here's the essential source, good luck, we're not going to help you with anything else, pay us". Fair enough, but that doesn't sound "open source" to me.
I'd estimate that at least 99.9% of open source software is written by people without direct payment eg for every 1 paid contributor there are 999 who do it either as part of their role in a job or for free. Even the paid contributors mostly have other income from consulting, social media, speaking, etc.
That's not to say you can't make a job out of it, but actually planning to do that would be incredibly hard. You'd need to recognise something that's missing from the software ecosystem, implement it, release it, and find enough people willing to pay you to develop it to make it a full time job. Alternatively, find a role at a company that pays people to work on open source, eg Google, Facebook, Canonical, etc. Arguably that's going to end up feeling like a normal developer job though.
If we include all software released under an Open Source licence, I imagine that's true, but it will include millions of trivial GitHub projects that don't really matter.
It may be that only 0.1% of FOSS development is paid, going by lines-of-code, but far more than 0.1% of the value of FOSS is done by paid developers. Plenty of paid Linux kernel devs, for instance.
There's loads who work on the kernel as part of their job, but that's no different to any other dev job. I think the question "how do I get paid to work on open source?" is subtly but very importantly different to "how do I get a job that includes working on open source?". The former implies the person asking wants to get paid directly to work on an open project in their own right rather than being part of a company's team of contributors.
That might not be the case here but it's how I've interpreted it, because "how do I get a job at a company that contributors to open source?" isn't very interesting. You find an opening at a company that works on open projects and apply for it.
What's the problem with that? It's win-win that this arrangement is relatively common.
> I think the question "how do I get paid to work on open source?" is subtly but very importantly different to "how do I get a job that includes working on open source?". The former implies the person asking wants to get paid directly to work on an open project in their own right rather than being part of a company's team of contributors.
You're right to point out the distinction, but I don't think how do I get paid to work on open source should necessarily be taken to have that meaning.
I'm not seeing the problem with that. You'll never have full freedom to work on whatever you like and get paid for it.
Seems to me the salaried job approach will give the developer less freedom compared to the patronage model, as you say, but it also has advantages. It introduces corporate/organisational resources, so you won't have to personally fund your test server, and hopefully there will be competent management, etc. In practice I imagine it means better job security too, and at the risk of being circular, it's just more likely to happen and to pay you properly.
> the dev will only get paid to work on aspects that advances the employing corporation's interests
True, but compared to the work just never happening, that's still a good thing.
If you instead rely on patrons, you're still beholden to someone else's interests. This takes us back to my first point: you can never have total freedom to work on what you want, and get paid for it.
1. Evan you (creator of vuejs) makes kind of a salary via patreon .
2. Taylor otwell (creator of laravel) has created many useful projects like spark and forge that generate amazing revenue.
3. Creator of sidekiq (mike) has created a million dollar business by creating premium upsells 
4. And finally of course there are free and hosted versions of the software like WordPress that are in a league of their own (also recently noticed a site called Browserless which has done quite well with this model)
6. Kyle Matthews works on Gatsby by VC's money. The business model is premium cloud service for incremental build.
I sell closed source Pro and Enterprise focused feature packs for my OSS projects. This is known as "open core".
My first full year in 2013 I sold $85k.
I'm in the millions ARR now.
Mike's story was a lot of inspiration for me, and I think licensing + cloud-ifying your opensource projects are a ton more viable than hoping for Patreaon or other platforms to pay you. Self-bootstrapped indiehacker style was great for me, but it does require a lot of up-front time and commitment in seeing it through. Upside is that it's not monopoly money being dealt with, and everything is on your terms.
With the knapsack_pro version I focused on common needs of users and there was simple validation method to verify if particular feature was needed. People just pay if it brings value.
In case of free open source tool, people tend to want something but you don't know if they actually will you use it and sometimes people demand a thing while you have to put the hard work.
When you do paid version of your tool then somehow people are polite. :)
Nowadays I have also support for running parallel tests in JS.
More at https://knapsackpro.com and here is detailed technical explanation how it works https://docs.knapsackpro.com/2020/how-to-speed-up-ruby-and-j...
I appear on various podcasts, e.g. The Changelog, regularly and talk about things there too. I'll be on FounderQuest in the next week or two.
Could you please point to how licensing works in open source. I get the user has to buy license - is it like a key that talks to your server or how do you stop the abuse etc ?
If you have $1m in sales and $1m in unlicensed usage, do you have a problem?
In general though you should focus on building value, not building walls around your product.
What strikes me as odd is that it is usually been brought up as some sort of additional qualification (as in „open source projects promote good code“), but in reality what this boils down for you is just more potential work (your normal work + open source work), and also implies lowered expectations for salary please („you are doing coding in your free time anyways!“).
Seriously, I admire and respect open source developers, but fuck companies that make it mandatory to have worked on an open source project for hiring you.
That is seriously fucked up - companies that rake in tons of money, build on top of free software products, make it mandatory for their developers to provide proof that they can be further eploited (as that is what it comes down to - forget that „better code quality“ or „we are part of the community“ thing they usually use as the rationale).
Sorry, had to vent that.
And to OP: I was asking myself the same question (how to sustain oneself in a first world country by doing unpaid coding). I came to the conclusion that this is not possible for me, as I strive for a higher standard of living as well as some spare time.
To put it more bluntly: open source developers seem to be the monks or junkies of coding to me in that they are just fueling their desire to code but do not insist on getting renumerated for it. I am not saying you shouldn‘t be doing any pro bono work, but a high quality product like VLC for instance should be able to sustain properly paid developers.
Are you sure there are many companies like that? Not just that it is not my experience, but it also mean their ability to hire is limited to miniscule amount of developer.
Why? Open source coding is essentially pro-bono work, that's required by professional ethics in many fields. If we want to be regarded as valued professionals, there are some obligations to the general public that come with that.
For that matter, most developers are not being paid to work on the likes of VLC or some other COTS, where "should this be open source" is even a meaningful question. They're developing or maintaining some internal enterprise app, so any source code they develop will always be available to the final user in that basic sense.
One way to start an open source business is to use a public/private licensing model, a.k.a. dual licensing with an 'open' license and a commercial license. The key is that you can have readable, modifiable, redistributable source code, without universally giving your work away for free. Instead, charge a fee for the right to use your software to create proprietary software, or for the right to use your software in a commercial context.
License Zero is designed to support developers pursuing this kind of business model. There are two public licenses, Parity and Prosperity, and there's a payment platform to charge for private licenses. https://licensezero.com/
Parity is a copy-left license, and is best suited to developer tools and software libraries. https://paritylicense.com/
Prosperity is a non-commercial license, and is best suited to end-user applications. https://prosperitylicense.com/
The Sustain podcast has an interview with the creator of License Zero, Kyle Mitchell. https://sustain.codefund.fm/29
The consensus on that list is that License Zero violates certain tenets of the Open Source principles, and as such software released under a License Zero license is not open source software. By extension, this means that getting to work full time on License Zero software means that you’re not working full time on open source software.
The FSF's concept of four freedoms always appealed to me, but the problem is that freedom 0 allows people to take away the freedom of others, because it allows the creation of proprietary software. The Parity Public License doesn't have that hypocrisy. https://www.gnu.org/philosophy/free-sw.en.html
A lot of the sponsors that do well are ones that offer things that the sponsor wants. Trading a couple hours a month consulting for $1k/mo in sponsorship helps make it worth doing to the donors. They want to support you, but they also probably could use your help.
Effectively you're productizing consulting and that flips it from a donation to a purchase. They get a tangible thing for their money this way. I think that helps a lot for making sponsorships more successful.
My solution is that as much as I love open source and the community I’m in, I do not let it get in the way of work and family.
I’ll only contribute when I have spare time. Unless I were to be paid for it.
I don't get to write as much Go code as I'd like, but whenever I do, testify is my first stop on GoDoc (just to refresh my memory in the assertion names).
Is it because you don't like your present job and want to work at a better one, and it seems like open source work would be more pleasant?
People who can make a living doing open source are rare, you have better chances of winning the lottery than making a non poverty living writing open source code unless you can make yourself a super star.
The only solid way to do it is code, code code. Write software people will use, that not only works well but which has quality source code. Share it, support it, work with others to make the software even better.
Write something people need that is otherwise very expensive, like a CAD package for a specific need, or something that is a niche no one has addressed yet with really high quality software.
Note that the above relate to software you create.
If you just want to work maintaining open source software, you can get a job working with it somewhere that uses it extensively... not too hard these days, lots of places that make set top boxes or embedded devices use Linux, Android is still partly Linux.
If you're thinking of making a living by writing open source software but you haven't already written a well liked open source package.... I suggest you adjust your expectations.
Most of the open-source code that I use are small, limited-scope libraries. These appear to come from someone who wrote the library as part of a larger project; and usually from someone experienced enough to make the library "good."
Usually the limited-scope libraries solve a well-defined common problem that many applications need; instead of a unique tool that someone just wants to give away for free.
Alternatively, there's frameworks like Spring that come from consulting companies. These frameworks only become valuable with lots of external users, so it's in Pivitol's best interests to sponsor their framework, which they also happen to be very good at using to write custom applications for paying customers.
I don't know how to turn it into a fulltime career other than getting some kind of grant or working with a company to do it. Sponsorship sounds great, but probably requires some fame / traction, which is probably the hardest part, since you need the money to get the traction. Some open source projects also have foundations with employees or people doing contracts, like astropy (also driven with donations).
Getting paid for open source software is like becoming a successful musician, from the outside it's easy to only see the few "superstars" who make bank but for every one of them you have thousands of people for whom it'll never be their main source of income.
While none of my stuff made outside a contract ever yielded money, I also never made it a goal.
The "trick" in my case is that I am an independent consultant, and open-source is how I dedicate some days of my workload (and a bit of weekends too, but only when I want it).
I have published an open-source Ruby data processing framework in 2015 (https://www.kiba-etl.org).
I sustain myself by two ways: 1/ consulting on either Kiba ETL (which brings leads) or other data projects and 2/ "Kiba Pro" commercial extensions providing more features with vendor support (yes, proprietary code, not OSS, on that specific part).
I have explained in depth how and why I decided to go that route in a talk this year:
About GitHub Sponsors: I'm giving it some thoughts, but some parts are blurry for me as a French company, lawyers have no answers yet, and GH support could not help me from a legal/fiscal standpoint here. I also do not expect much, but will likely try it out.
Hope this helps, although this road is not for everyone!
Read this amazing article on how much money Open Source makes: https://staltz.com/software-below-the-poverty-line.html
The best funded JS open source project, Vue.js, receives $16k/month. That's a single-developer level of income in SV. The fact that TechCrunch, who regularly covers multi-million deals and CEOs making millions, says that "the revenues can be outsized" with these numbers is ingenuous at best: https://techcrunch.com/2018/06/23/open-source-sustainability...
So you have few realistic options:
- Save enough money to not need to work again (FIRE - Financial Independence, Retire Early, etc).
- Live very cheap, which could be a flip side of FIRE. Be ready to move to Thailand and other cheap countries.
- Work on open source on the weekends or after work. Alternate working N months/years and then doing OSS M years.
- Do consulting as a part time job and open source. If you play your cards right you might be able to join both consulting and OSS somehow.
- Find the companies that do open source and apply for jobs there. Not so many options, but it's realistic.
It has 2 steady income streams:
1. Monthly sponsorship donations.
2. Forging rewards from the Lisk blockchain. Those rewards are shared with the community.
SocketCluster powers Lisk's P2P network and protocol so on that basis I was voted into a forging position on the Lisk blockchain.
These two sources of income have been just enough to support myself and a couple of casual contributors. Took 7 years to get to this point.
Also, I occasionally did consulting in the past but that has not been reliable.
My experience makes me optimistic about blockchain tech's ability to help monetize open source projects. I'm particularly optimistic about the DPoS (Delegated Proof of Stake) mechanism because it allows big token holders to vote for open source project maintainers to be delegates on their blockchain and allows those open source maintainers to earn block rewards.
Forging on DPoS is like like Bitcoin mining, but a lot less hassle and requires no capital if you can get the votes.
I'm working on the Lisk ecosystem now.
Helping others to monetize their open source projects in such a way that they can retain independence from corporate or government influence is my life's mission. My project is just a proof of concept.
BTW feel free to look for my email address on GitHub and get in touch with me if you want to participate somehow. I can't guarantee anything but I feel that the technology and incentives are improving - I'm working on a DEX ecosystem right now which should facilitate this.
There are numerous benefits to being open source. We built a community around the product, it played into marketing efforts, really helped attract developers at companies for bottom-up sales, and led to lots of improvements, many of them contributed by our paying users.
My point is that open source and "making money" don't need to be mutually exclusive. In fact, sometimes the open source side can really bolster the commercial side. This seems most effective at companies that offer a hosted version of their open source product. Very few large enterprises want to run things themselves if they can just pay a company to run it for them or provide support.
So writing and releasing OSS may not lead to direct monetization opportunities, but it can be a great way to get in touch with enterprises and to get demand readings quickly.
Working to make money is a completely different story, and it's quite rare to be able to completely merge work and passions.
There are also plenty of reasons for a company to publish open source software (and that's a good thing!). But you have to remember that behind this choice, there will always be a strategic reason with a business plan.
I feel like you could replace "open source" with "programming" and it would be basically the same question.
There are two sides to working a successful business:
1) Having something of value people want
2) Figuring out how to 'capture' that value in a sustainable way
The vast majority of people either aren't very good at, or don't really enjoy, #2, and so they outsource the "how to make money off this" to a company (i.e., they work for a company). You write the software the company asks you to, and the company figures out how to make money from it.
The same thing goes for open source: Probably the dead easiest way to make money from open source is to apply for a job at RedHat. Or SUSE, or Ubuntu. Or one of the teams at Twitter or Facebook or Google that do open source. You get to work on open-source software, and the company gets to figure out how to capture value from the activity.
Alternately, you could work for yourself, but then you have to figure out how to capture that value yourself. There are lots of creative ways to do that, but you have to figure out your own market. And in the end, if you're successful, you'll probably have more demand than you can satisfy all by yourself, so you'll need to hire other people, in which case other developers will be outsourcing the "figure out how to capture value" thing to you.
Or, it can just be your hobby, and you can treat it as such: do it insofar as it's fun for you, and don't worry about anything else.
Me myself, I'm a developer paid full-time to work on open source software.
I also have a handful of hobby projects I've worked on in my spare time, which I've put up on github with an open license. Those are things I would be doing for my own purpose anyway; might as well let someone else use them if they want. But I'm never expecting them to become a big thing, and if they did I certainly wouldn't spend much time working on them unless I decided to try to take a jump and figure out how to make it pay.
Open source is very hard to monetize (yeah, RedHat, but that is not similar to most open source projects.
In case it is helpful, here are the results of our study: https://blog.timescale.com/blog/how-open-source-software-mak...
If your open source product can be run as a SaaS, you might be able to make money by providing no-hassle hosting (think Ghost or WordPress).
Another option might be providing a open source core and then selling additional closed-source features (e.g. GitLab)
But if you simply want to sell your open source product to customers so they can run it themselves, then it's impossible. It's a dream for many developers and there are some success stories, but they are always the exception not the norm.
Solutions like selling support, or even worse, charging for documention, are simply unappealing to both developers and users.
There is another option - one that some open source advocates dislike: source-only products i.e. you sell you software product to customers to run them themselves. You give them the source code of your product so they can customise it to meet their needs. But the software is not open source and cannot be shared the way open source can.
There are actually lots of successful source-only products that are sustaining their creators full-time. Two examples: Craft CMS and Kirby CMS - both publish their source code on GitHub and rely on the honesty of their customers to pay (which they do). They have a thriving community of developers making plugins and extensions - proving that you can create a community of developers around a 'source-only' product.
1. In most cases, the popular OOS project has a team in some large companies, for instance, React (Facebook), Angular
(Google), VSCode (Microsoft), etc. and that's mean that code is open-sourced however a key decision made by an internal team.
2. A donation can help you to buy a cup of coffee (or tea), however, not replace your full-time job.
3. If we are talking about Github sponsors, the idea is really good, however, if you are located in one of the following countries https://github.com/sponsors#countries, which is not my case, and I think my country won't be supported in near future.
4. To be involved in OSS is not guarantee tons of interesting job offers. In most cases, a good LinkedIn profile can be much helpful than good Github profile, and yes - to have good Github profile need to make something important every day that others can see your involvement, which takes more your spare time instead of adding several motivation phrases to LinkedIn profile for HRs.
5. OSS is a community and that's mean an opportunity to meet some interesting people.
It was pretty awesome. For most of the time I was able to live somewhere fairly affordable and earn a comfortable income (though a long way from SV money.) I still miss that community and meeting up with them at sprints and conferences around the world.
While my work is currently done outside my core working hours, I've been exploring if it is possible to make it self-sustainable and have been reading about a few other people who have been successful at this. I think the trick is to make it possible for people to pay you in one or more ways:
a) Don't ask for donations, but offer a support contract. It's easier for devs to get that approved.
b) Offer a hosted version at a reasonable price. Sell the convenience -- of course, this might not be feasible if your open source tool is not easy to offer as a hosted service.
c) Offer some premium features as a paid product. Companies are again happy to purchase a premium version if the pricing is not ridiculous (e.g. $500/year will be a no-brainer) and you can also throw in additional support.
d) Get a company to sponsor a feature if it is something that they badly want.
e) Charge for adding a company's logo in the Github repository as a less intrusive form of advertising.
f) Use your open source code and popularity to get a better paying job with work-life balance. Indirect monetization but hey, that's pretty legit.
g) Find a company that allows you to work on an open source project full time. Not too many companies do it but if your interests/strengths overlap with a project (e.g. Kubernetes) that you contribute to, this could be an option.
I have gathered links about it here: https://bzg.github.io/opensource-challenges
Oh, and you can support my FLOSS contributions through Github: https://github.com/sponsors/bzg
Most of the time the only viable option is to work for an organization (either as an employee or not).
Don't go for FAANGs. There are other orgs and companies out there.
Asking random users for donations works on very few cases.
It's a sad state of things. Most modern technologies have been researched with public funding (semiconductors, fiber optics, GSM, GPS, touchscreens) but now people don't even remember that.
It doesn't affect open source users; though Stallman doesn't like it. Projects using this kind of idea are berkleyDB and ghostscript.
During Perl's peak in the early 2000's, I'd guess there were easily dozens (hundreds? thousands?) of companies using code I'd created. Some of the bigger Perl companies these days include Craigslist, Booking.com, CPanel, Bluehost, and Grant Street Group. Many of these companies have been around for quite a long time.
Starting in 2008 I began adding a DONATIONS section to my package documentation, like https://metacpan.org/pod/DateTime#DONATIONS. Over time, I've added this to nearly everything I maintain.
Unfortunately PayPal doesn't provide stats going back to 2008, but at a best guess I'd say I've received about $2,000-5,000 dollars over 12 years or so. The largest donation I ever received was $500. Most donations are in the $1-50 range. None of the companies I mentioned above have ever donated anything, though they have all contributed to The Perl Foundation in the form of conference sponsorship.
So that's a long-winded way of saying that I don't sustain myself on open source. This is a pretty common story. Companies rarely make an effort to support individual developers. They will support language/project foundations, but that money isn't going to be directly divvied up among library developers for the language.
One problem I have run into in trying to get employers to give something back to the Perl community was that it was all very... indie/hippy/whatever. Even though there were/are a great many profitable enterprises utterly dependent on the Perl ecosystem, the Perl community made no real effort to extract money from them.
Which is great! But also makes it hard for bosses in conservative outfits to justify donations. I managed to get a corp-rate conference ticket paid for, but that was in 2007, don't think I could do it now.
Thats interesting, is anyone aware of a language/software community where that does happen?
We fund a number of long-running grants for the Perl 5 and Rakudo/MoarVM language cores. We also have a smaller grants program for one-off projects, which have included things like documentation work for core & libraries, funding of work on existing libraries, and infrastructure projects for the community (websites, etc.).
We also work on marketing the languages by doing things like having a table at FOSDEM and other conferences, etc. And of course, we provide an organization to back up conferences and other events, to do things like carry an even insurance policy, help with Standards of Conduct, and lots of other background activities.
This is all good stuff, and I'm glad we do it. I don't think we could announce a plan to just give money to everyone who uploaded to CPAN. For one thing, that's thousands of people, so we could maybe give them a dollar or ten each. For another, the value of each person's contribution is obviously hugely different. I can't see how any community foundation could do this without causing more problems than it solves, even if the foundation had the funding to do it at any sort of scale.
It feels wrong to charge for end product. It means using DRM to block people who wouldn't pay anyway, from accessing a copy of software that costs me nothing. I want to be payed for the development effort, not for copy of product.
There should be a agreement of platform over which developers want to receive money (for example, Microsoft's GitHub Sponsor might not be the best choice), followed by strong media push to change the mindset that open source is free for taking. Most companies can spare the money and in the long run everybody benefits.
At the moment I'm supporting myself and my family with a regular 9-5 programming job, but I'm also accepting donations through Patreon, GitHub Sponsors and PayPal. There's been a huge amount of support coming in, especially given the ambitious nature of my project, and I'm quite hopeful that I'll be able to turn this into a full-time gig not too far into the future.
My tip would be to find ways to share the development process, not just the software itself. You don't have to make videos like I do, but write about it, share screenshots, post about it on social media etc. :)
Over the past few years I've mostly been working in leadership (but still with a bit of hands-on), so I mostly work on things that interest me. For example, for a while I was obsessed with building a web scraper, and some machine learning stuff, so I built:
https://github.com/fredwu/crawler and https://github.com/fredwu/simple_bayes
Working in bursts works well for me, as I can dial the effort up and down depending on my availability and mental space.
I was getting maybe $10-20/month from Patreon and GitHub Sponsors, but in the past two months I started asking people directly to support my work if they could, and to my surprise, a number of people have! I don't know if I'll reach a 'sustainable' level anytime soon, but if I can, I'll be able to spend more than a few hours a week on pure OSS work.
I sometimes feel opensource collaborative projects only exists thanks to alcohol, but single-person projects thanks to boredom or scratching itch.
I estimate that I've earned around 3 - 4 k€ in 6 years because of this project mostly from:
- Freelancing in projects related.
- Paid version of an Android app that uses the library
- Free version of the same app with ads
Obviously I have a proper job but I've been able to learn a lot because of this side project. I would do it again
I also found the PolyForm Noncommercial license which, I think is pretty great for hobbyist use and learning, so I'm trying to sell that license for lunch money to hobbyists and educators / charities.
Just getting started, will report back on how it goes.
Repo is here https://github.com/sudhirj/redimo.go
Have you considered using the Parity Public License and selling private licenses through License Zero? https://paritylicense.com/ https://licensezero.com/
Wanted to choose only well known licenses, but I am looking at other options. LicenseZero works only for individuals, by the way - companies will have to go through a separate process, or ask all their employees to buy separately.
Indieopensource.com is a pretty great resource. Same author as License Zero. Was recommended to me when I was asking about company purchases on LicenseZero - Kyle suggested I charge companies more and use the private license from on that site. It prevents customers from re-releasing the code under any other license.