Hacker News new | past | comments | ask | show | jobs | submit login
Why we never thank open source maintainers (windsooon.github.io)
382 points by Windson on Nov 23, 2017 | hide | past | favorite | 209 comments

As the maintainer of a reasonably popular library, I actually get irritated by a lot of 'thanks', because they are in the form of this sentence:

'Hi, can you implement <Feature that takes a month of work>? Thanks!'

Usually from people who have never contributed anything.

Honestly, being thanked in any shape or form does nothing for me, Id rather have users be more considerate of our time and not abuse issues and the community for supporting their laziness.

Ways I deal with this as an open source maintainer of various projects:

1. Severely restrict the scope of the project (i.e. do one thing and do it well) 2. Don't feel guilty about saying "no" 3. Realize that people have no malicious intent or are lazy when they request <feature X that takes two months>. It's just like a normal customer in a business: they often have no idea of the cost and difficulties in implementing things. That's okay, it's my duty to inform them of that. 4. Refuse pull requests for features that I don't feel like maintaining. I always try to keep people from wasting their time and ask them to confer before implementing a feature.

I don't feel animosity towards people who (even rudely) request such things. But they can expect a short reply in the form of "I'm sorry, that feature is outside the scope of the project / is going to take too much of my time."

It would be nice if github made it easy for people to assign a $ bounty to every issue and when it's marked complete payouts are automatic. There are a bunch of issues in various open source projects where I would easily drop $100 on a bounty.

I believe this is what bountysource.com is for. I haven't tried it, though, and I'm not sure how completion is evaluated.

Seems problematic to let the bounty-poster decide if something is completed, but also to put it on a third party to put in the time to verify for various pieces of software they might not be familiar with (and worse to put it on the second party who implements).

Three days ago:

BountySource suspended from GitHub | https://news.ycombinator.com/item?id=15747328

Useful discussion on the concept there; they were temporarily suspended for not supporting opt-out.

Whisper Systems supports auto-Bitcoin for suspended pull requests. https://signal.org/blog/bithub/

This is potentially a great idea. It doesn't necessarily have to be a github feature. It could be a third party platform, kind of a Patreon or Kickstarter for open source bugs.

But I think the platform would need to be scalable in some way. Maybe no one will fix it for your $100, but maybe if the bounty were crowd funded, it would get fixed when the bounty got high enough to be worthwhile for the amount of time and effort involved.

When I was an active participant on Cyburbia, the site owner was paying for hosting out of pocket and he was resistant to commercializing it and was equally resistant to taking donations. He talked about commercialization as "becoming a sellout" and taking donations as "I don't want to do a PBS style begathon annually." He worked for the government and seemed just unable to wrap his head around good monetization.

People would complain that the site was slow and kludgey. As it got more popular, the level of hosting service he could afford was not really meeting demand. He would crab at complainers that they needed to be more appreciative of the free service that he was paying for out of pocket and make it clear he could not afford more.

I felt there was an obvious solution: Post a page saying it takes $x to cover better hosting for a year. I can't afford that out of pocket. If you want to see site performance improve, kick in a few bucks. When it hits $y, I will upgrade the hosting service. Then point people to that page when they complained.

I see a lot of potential for your idea. It could be a means to turn complaints into a money stream to help improve open source without victimizing contributors.

As someone who did a lot of volunteer work over the years, I came to resent the idea that I should do everything for free. If we value this stuff, we should be willing to pay people to work on it. Finding a means to do so even though it is voluntary can be challenging, but shouldn't be show stopping. We just have to be creative.

I'd be worried that this might create an expectation to work on issues people were willing to pay for, whether that makes sense or not. I've seen a lot of this in commercial software, if a paying client want a feature then it get's added no matter how much sense it makes. Then every other customer has to deal with the feature bloat whether they want it or not.

It's also the root cause of a lot of technical debt, "we added this misfeature years ago because 1 client wanted it, so now we have to support it". It's important there is a proper funnel for what features should be added.

I run a support forum for an open source project.

The maintainer does something similar and it can annoy some people to get no for an answer but it keeps things sane. The software has been going well for 8+ years now (with one change of maintainer in that time).

We also implemented a Feature Request forum and people generally use it. Plus 'Issues' are turned off on GitHub. So things generally funnel very well through the forum/mailing list and you know that a post in the Feature Request forum will request a feature, so you can mentally prepare for it.

> So things generally funnel very well through the forum/mailing list and you know that a post in the Feature Request forum will request a feature, so you can mentally prepare for it.

That helps address the under appreciated mental cost for dealing with an open ended inbox.

If you don't know whether the new message is related to 1.) expression of gratitude, 2.) complaining, 3.) feature request, etc., you have an added amount of anxiety when opening the message to figure out which kind it is.

> That helps address the under appreciated mental cost for dealing with an open ended inbox.

> you have an added amount of anxiety when opening the message to figure out which kind it is.

I'm pretty sure thats a symptom.

I agree. Sometimes, I explain that the feature request can be implemented, but not for free. I flag such issues with the "needs sponsoring" tag.

I very much agree with your first point, largely because, would you fancy that, that's the original *nix philosophy.

I'm curious; What are your open source projects? (And thanks for your comments, very interesting and resourceful.)

Send them quotes back:

"I'm glad you liked it, I have X hours to dedicate to project Y this month. If you'd like, I'm willing to work on that feature for you under terms Z".

People _pay_.

You'd be surprised just how much of Chromium and other open ssource projects is written by consulting companies paid by third parties to solve a use case.

> People _pay_.

From our experience (http://sheetjs.com/, our major open source library is https://github.com/SheetJS/js-xlsx), even with multinational corporations, they move heaven and earth to find another free solution, or spend in-house time to hack together a solution and try to sucker you into helping them, but paying is by and large the last option.

From my experience in the medium business world (maybe 500 people total?), paying is the only option. Open source is evil. Maintaining things is evil. Writing your own code is evil. Just shell out $x,000 for support.

If I could find a way to say "Yeah, we can get 'support' for this open source library for $xxx per month" my life would be much easier.

The Django Rest Framework library has taken this very approach [1] offering both corporate and individual monthly subscriptions which is then used to fund development. It appears to be quite successful in that it's allowed the lead developer to work on the project full time (at a salary of £50k [2]).

[1] https://fund.django-rest-framework.org/topics/funding/

[2] http://www.encode.io/reports/february-2017

This. A lot.

I work at a company with less than 500 people and for IT open source is evil.

I've seen people been told by IT to find another software that does the same thing but paid, and we have a law that mandates us to prefer FLOSS when possible...

You can in many cases.

Not surprising: every development team has some leeway in manpower allocation that can be used for an in-house cludge, but few have much autonomy in financial spending.

As someone working for a huge multinational, the reason for this is that purchasing 'non-standard' software or services is an absolute nightmare. It can take months of back and forth, to and from, getting passed from pillar to post.. eventually you just give up!

I run a small seven figure revenue business and I have paid more than one open source maintainer/contributor for work done. Definitely don't be afraid to ask; but I usually offer upfront. I'm an ex-developer so I usually offer the help I can with the keyboard, but know that it's limited compared to most of the really good developers out there maintaining a real project, so I offer time + money.

The problem is getting single open source maintainers to commit - and followthrough - with support. They are often way too busy with their job to actually be professional with support and adhere to even a loose SLA.

I usually put up a milestone date and direct them to that date, quite a few times have to push that date to work on stuff that pays my bills.

The best ones who pay are those who directly reach out with a paid offer; which shows that they definitely have explored the market (most likely than not) and you are the best option :). The better than the best and great to work with clients are those who just reach out to you directly, only very rarely would happen!!!

Interesting. What are some examples of things consulting companies have added?

Some different perspective. Example Debian with plenty of poorly maintained packets which broke original behavior (say linked against another library which is not recommended by upstream) or disable some features or outdated (not in sense of stable/unstable). Sending DD messages 'please fix, thanks' looks like is very reasonable (although some of them do not think so). Either your maintainer or not - even say one can do it 'better', one can't preempt or overload - it's not just fork the whole distro at github.

Reporting the bug is reasonable. Bugging (no pun intended) them is not.

even say one can do it 'better'

Then offer to take up the maintainer role. Debian has institutions to deal with unresponsive maintainers.

Clearly this is evidence that those institutions are in need of improvement, no? Perhaps too few people know about them, for starters.

Or go with a distribution that makes it trivial to make drive-by contributions, like NixOS for example. Updating a package is a simple as bumping two lines and sending a pull request here: https://github.com/NixOS/nixpkgs

For reference, I’m the (co)maintainer of over 80 packages in Nixpkgs. IIRC, I submitted my first PR within roughly a month of using NixOS. Before NixOS, I had used Ubuntu for 4 years. How many packages did I maintain there? Zero. It’s just too difficult to track down the right project, figure out the arcane build/packaging setup, contact the maintainers, etc.

> chromium

just like several dev over the years implemented privacy conscious options to restric the referer(sic) header just to have google employees silently remove them later on?

well, I guess it can work if the feature you are paying for is not to improve privacy at the expense of google's Ad business.

Do you have a link? I'd figure Google would want to restrict the Referer link, as they were accused in the move to HTTPS (which did break it for a lot of sites linked from Search).

you will have to search. its hidden in unrelated commits. but features that were removed at different points in time are: no referrer/only first party referrer in settings. no referrer in their about:config equivalent at the time (its a moving target). command line option to disable referrer.

all added and vanished at random points in time.

And what is the issue with just telling them that it could take a lot of work, so probably not? Why does it bother you if someone says thanks? It does not put you in any obligation to do anything...

I do not understand your point of view. Should we stop saying thanks in our daily life? Because it does not really do anything for anyone....

To me the following two messages give off two totally different vibes:

'Hi, can you implement <Feature that takes a month of work>? Thanks!'

'Can you implement <Feature that takes a month of work>?'

I do tell them i) whether it is on the roadmap ii) what would need to be done.

The reason it bothers me because it sounds like an order to someone who is delivering a service for you, e.g. 'Can I have another drink? Thanks!'? That's not a 'thanks'.

I do think that kind of non-thanks is very different from what the article is talking about though. One is asking you to do something, and the other isn't. The only thing they have in common is the literal word "Thanks".

That's a good point. You got me convinced. There are better ways to deliver such a message!

> 'Hi, can you implement <Feature that takes a month of work>? Thanks!'


> 'Can you implement <Feature that takes a month of work>?'

Are very differently loaded questions! The first one very much indicates no concern about the implementers time, and is very often seen coming from people that have no idea the complexity of the work involved with the "Thansk!" indicating the implementer would automatically accept it regardless of their own priority, while the second one is way more innocent and open for a reply back with "not sure if I have time for that atm".

EDIT: In short, it's a matter of etiquette, the same way nobody wants to deal with a complete fucking asshole (sorry, personal scars here...).

Agreed, the "thanks" feels a bit like the user have "paid" for the feature simply by giving an upfront thanks. The thanks is for the new feature, not for the _existing_ features.

Something like:

> I really like NAME-OF-PROGRAM. Thanks for making it! > > One thing that would make it even better for me would be FEATURE-X. What do you think?

would be much better.

Putting some effort into the request/suggestion also helps. Eg. giving a well written rationale/use case. Saying why existing-feature-Y isn't enough, etc.

I don't know. When I get bugreports, I usually prefer people who cut to the chase instead of wasting my time with salutations.

Only on hacker news can "Thanks!" be interpreted negatively... jesus...

In the first one the thanks seem insincere because it's asking for something.

Done incorrectly, this can sound passive aggressive, but I suggest adding a short notice in your README:

- Feature requests should follow ((list your rules)). All requests that don't follow the rules will be ((closed|ignored))

- ((The maintainers of this project)) will only add new features ((at their leisure)). If you cannot contribute a pull request for ((feature X)), make a feature request ((following the rules on item 1)) and wait. Please do not be impatient.

- If you can implement ((feature X)), please do so and open a pull request.

My personal experience is that dealing with third-party code, merge conflicts and waiting for responses can be even more draining than writing code, so there's that.

Reorder to make the second bullet the first: people are prone to feeling entitled to their feature after jumping through all those hoops, don't give them the chance to stop reading at that point.

I do this at work in my social media channels and such. I clearly state the rules of engagement and delete 99.999% of communication that doesn't fit the list.

(Sometimes I'll answer communication from those who don't get it right, almost always they are high-profiled individuals you occasionally have to break a rule for. [I also usually regret it. Maybe I'll learn someday.])

Can you provide a link to an example of doing this or something similar?

If you mean something like contribution guidelines, then they're everywhere. Here's one of mine as an example: https://github.com/benhowell/react-grid-gallery/blob/master/...

Yeah this is painful. Why do some users feel so entitled? The hard part is not to feel bullied into doing work for free and not to react in a snarky way.

The best remedy I find is to know exactly where I stand. Is it something I am interested to work on? maybe, if enough users show interest. Or maybe not. And then communicate clearly to set the expectations.

Want this feature? Sure, either do it yourself or hire somebody from freelancer.com or something. Or at least help me refine the requirements from your vague "this is not working exactly like I want". But yeah, even that is taking energy away.

Related to that, I wish github had an auto-close issue feature that would be triggered if the user hadn't replied for a month.

EDIT: but I also get a lot of really good and respectful feedback. I don't want to push these people away because of my previous snarky comments.

I wonder if it's due to how open source software is sometimes marketed to users? If you have a professional-looking website saying it's easy to use and better than the rest, and people try it out and it's not completely wonderful, they're going to complain, because it didn't meet expectations.

Perhaps deliberately modest marketing would work better at attracting the right kind of users?

This is an important distinction to make.

If those users are mad because you won't do free work for them they are entitled jerks.

If those users are mad because your marketing made promises it doesn't keep and they wasted their time learning/installing/integrating your project based on lies, you are the jerk.

Some open source projects are aware of the number of users but focus on getting contributors, so that they can make the product better. They are sharing the workload of solving a common problem so others can stand on their shoulders.

Some focus on user numbers, because then they can be famous, or they have a connected business that will make more money.

These are groups that will work very differently and respond to users differently. They have simply chosen similar software licenses.

I’m sure I know the sort you’re talking about, but there’s another quarter being heard from here too.

There isn’t space for an infinite number of libraries in a niche. So if you show up you are occupying space that someone else can’t. Sort of like if your friends throw a party and you decide to throw one on the same day. Kind of a dick move if you don’t have a really really good reason (like it’s your birthday).

Additionally is nearly impossible to sell a library now. It wasn’t always that way, but that’s the world we live in now, in large part because of FOSS. Writing it in-house or using FOSS are pretty much my only two options. So FOSS has to be some significant fraction of the quality of a commercial alternative because we can’t have those anymore. Without any attempt at sufficiency, FOSS effectively makes the world a worse place.

> Why do some users feel so entitled?

As a user, I have no longer a way of knowing whether an "open source" project's main developers are doing stuff in their free time or on company time. So, I don't see anything wrong with asking for features. Asking for features is how software evelves, whether closed source or open source. If you have a problem with it, put a disclaimer "unmaintained" in the README.md (because not wanting to tirage requests amounts to not maintaining the software).

I think the GP meant that some users feel so entitled that they are not even trying to ask nicely. The attitude.

He didn't discard the notion of non-paying users asking for features at all.

Edit: typo

I largely agree here. I usually get annoyed when people start demanding things though. There are a surprising amount of people that do this. That is where burn out comes from .

Mine usually go something along the lines of:

"Hi, I use your app and it's wonderful."

So far so good.

It's immediately followed by

"But it would be perfect if it had <niche feature only needed by that person's individual use case> "

You'd be surprised how many others had the same use case.

This kind of feedback is wealth.

Even if the use case seems very individual, maybe a useful generalization of it can be found which still covers that case but is of broader use.

> Honestly, being thanked in any shape or form does nothing for me

I'm 99% sure you meant this purely in the context of your earlier statemetn ("hey, implement this, plz"), but I just wanted to say a plain ol' thanks for me helps a lot in my motivation for doing my OSS projects. Knowing people actually use my shit, and enjoy it is nice :)

> Honestly, being thanked in any shape or form does nothing for me

So a genuine "hi there, thanks for all your work, I've been using your lib for months and its awesome" is an annoyance to you? You must be fun at parties.

yeesh, that wasn't what he was saying at all

No it was exactly what he said. First he complained about those feature requests with a meaningless "thanks in advance" attached (OK fine with me so far) but then with the phrase I quoted he made it clear that he doesn't like to be thanked in any shape or form.

Well that is actually true.

A 'thanks' does not do anything for me. I don't write a library for other people's appreciation, I write it because I want to, because I can, and because I have my own interests for it.

Insofar I am interacting with other people on the project, the only thing that does anything for me is if they contribute something.

Appreciation is not worth anything to me but I am also deeply introvert and not very social, I simply do not care. I can appreciate most people feel different (by observation) but I build technology because I want it to exist and do things, not to be thanked.

It's like you didn't even care what parent said, just picked a part out of context, built a straw man, and commented on it.

Not the person you replied to, but you’re making a specious argument. This is (a partial quote of) what was said at the start of the thread:

> Honestly, being thanked in any shape or form does nothing for me, Id rather have users be more considerate of our time and not abuse issues and the community for supporting their laziness.

You’re warping the argument by calling the response a straw man. I agreed with GP on feeling annoyed by thanks that are actually feature requests, but they went on to say that all thanks was unwelcome. Nothing was taken out of context.

No, the parent comment said any form which includes the type of thanks where someone is sincerely grateful. It’s not out of context, the person doesn’t like people to display their appreciation for his work.

It's not out of context. He first gave a specific example of what kind of "thanks" he doesn't like, but then with the part I quoted he made clear that he not only doesn't like those hypocritical thank yous attached to feature requests, but that he doesn't want/care to be thanked "in any shape or form". That's a crystal clear statement that was not taken out of context.

Thanks not what the post is about. It’s about “thanks” without an ask. As someone involved with a big open source project, Deeplearning4j.org, I can say that spontaneous thanks mean a lot, even years after you built something.

This isn't a thank you though, this is a polite way to ask you to do some work. A thank you is a thank you, and nothing else, it doesn't come with demands.

Why not just have a canned response ready that you're happy to review pull requests and integrate them if they make sense. I've never in my life asked an open source maintainer to implement a feature for them. I just send them a patch (pull request nowadays). If they like it they merge it, and if they don't they don't and I keep my own branch.

> 'Hi, can you implement <Feature that takes a month of work>? Thanks!'

Answer with an estimate based on your hourly rate.

Honestly, this exudes arrogance, even if the intention is completely free of ill will. It's better to say a clear NO ("I will not add this feature" or "I cannot implement this at this time"), and let them figure if they want to pay/use something else on their own, than to talk down to users.

Asking users to pay you isn't talking down to them. It's what sensible businesses do. If I walk into McDonald's and say "Hey give me a cheeseburger" it's not rude for them to ask for the $0.99 in exchange.

I'm not against offering to work on the problem in exchange for money. I'm against outright responding to a feature request with an estimate.

If you don't want to work on the feature (i.e. you're uninterested), it's better to be honest about it.

If you do want to work on it, but your time would be better spent on anything else, and you're willing to work on it for money, first ask if the requester is interested in paying for it and then give your estimate.

The difference between a feature request and a client approaching a freelancer/company is that in the latter case, the other party initiates the conversation with a clear expectation of paying — they only have to decide if they like the terms and price.

> If you don't want to work on the feature (i.e. you're uninterested), it's better to be honest about it.

Being uninterested to do it for free: Yes. But when I am interested to do it for money, giving an upfront estimate based on the hourly rate is the most honest way imaginable to me.

> Honestly, this exudes arrogance, even if the intention is completely free of ill will.

I would rather say that asking to "implement <Feature that takes a month of work>" for free exudes several more magnitudes of arrogance.

I get what you're saying, but even without the requested feature, the existing code also took time, mental effort and opportunity costs to come into existence — the user sees it and naturally imagines, "there's more where this came from".

Not all users are at the same level of experience as you (a maintainer); this doesn't make them lesser people or even lesser developers (sometimes they're just good in a different problem space than yours), but it makes their expectations a lot less realistic. Don't offload your annoyance on the requester — sometimes they don't know that their request is significantly harder than they think.

> Don't offload your annoyance on the requester — sometimes they don't know that their request is significantly harder than they think.

I give/gave an estimate based on my hourly rate so that this misconception is cleared of as directly as possible. If you want it for free, you better convince me that it is worth the opportunity cost for me to implement it.

Stating your price for a given feature is not "offloading your annoyance" and I didn't see anybody implying that people asking for feaures are "lesser people" or "lesser developers".

You seem to be setting up a few strawmen here.

> I didn't see anybody implying that people asking for feaures are "lesser people" or "lesser developers".

I admit that I may be reading too much into the dynamic at play here.

To be precise, naturalgradient did not say anything about the intrinsic value of users, but his/her comment says "people who have never contributed anything" and "supporting their laziness", both valid sentiments. The complaint is that the user is inconsiderate; I'm positing that it's better long-term to teach those users to be better users and eventually good maintainers. It's wishy-washy, but the good attitude of maintainers and other users is what taught me how to behave in open source.

If your policy is to charge for features, please disclaim it in your README. It's not a wrong practice, but you should set up the correct expectations.


Because this is HN: For anyone looking for brass, this problem is muck and there's a product opportunity here.

It's going to depend on how the response is worded.

I wouldn't want to assume that someone asking for a feature is willing to pay for it. I also wouldn't want to make an offer unless I'm serious about doing it if they say yes.

But, if you are doing contract work, letting people know it's an option seems like a good thing?

Agreed on all points.

Perhaps I'm advocating for a frivolous courtesy versus a fully rational process. Maybe the rational process works better than my suggested approach, but my intuition says no, and would prefer that it be done in a way that communicates "I can help you, but money is a requirement", not "I really wish you would fuck off, but here's an alternative".

Better make sure you make it clear it's an estimate, otherwise you might end up with an obligation you don't want.

I usually ask "how do I best do xyz with this library?" If I cannot find a good answer elsewhere online. Usually the developers answer and I am able to use their commentary to solve my problem. I know for one thing my answer will be public after I ask so at least it will become part of the selfdocumentation that arises from both stack overflow and issue systems.

Worse case they have to add something and put my request in some sort of backlog. I always say thanks when I ask someone for help though. But I never flat out ask for new features because for all I know they already have a defined way of solving the problem I have.

I feel conflicted here. I try to give people the benefit of the doubt by educating them a bit and explaining up front what funds the project as well as what the scope is.

As a maintainer, seeing it every does tend to annoy me a bit. I always try to remind myself people dont usually mean ill though. All bets are off if people continue to disregard the framework for engagement though.

Most people are a bit surprised I do this but are generally receptive after the initial explanation.

My main philosophy in these interactions is just to treat people professionally while being stern on things out of scope.

You should use an issue tracker, and ask them to submit a new entry.

I do receive time to time thanks without an ask! They do feel good.

I'm agreed. That's not the thanks we need. That just an excuse to ask people for help just like lots of stackoverflow questions. However, not everyone is maintaining a popular library. So I think some kind word may help them to make their library popular.

> thanked in any shape or form does nothing for me

$$$? Beer?

Do you wish for people to not at all tell you what features they would find attractive, or should they do so in some other way?

Agreed that responses like that are frustrating. Usually when they start getting to me I find it's time to take an evening off.

>>> 'Hi, can you implement <Feature that takes a month of work>? Thanks!' >>> Usually from people who have never contributed anything.

This is a very toxic attitude, honestly.

How dare users request features they can't implement themselves... only experienced developers with domain knowledge should request features!

> It is true that some of you guys can build a tool in a hackathon

I've kept some data on how much time I've spent on a somewhat popular open source project (+/-1000 stars on github, if that means anything).

Time to implement to scratch my own itch: +/- 24 hours

Time to write documentation, package, etc: +/- 70 hours

Time to handle bug and feature requests, support: +560 hours

So that's an overhead of around 2500%. If I was paid to do that, it would have cost around €130,000.- (and would have netted me around €5, because dutch taxes ;-) )

The emails and other forms of thank-you's from users make it more than worth it. Plus, I get to give back to the community.

I'd also say that if you are not paid you approach the work differently. Like you can take your time with certain things maybe. A lot less stress, I'd imagine. (Depends on the project obviously. If you get yelled at by Linus, you probably should be more careful!)

True, but expectations are sometimes also higher. Documentation etc has to be of good quality. Packaging. Stuff like that. There's really no comparing it with a paid job IMHO. It's more fun i'd say.

What do you do that you charge 200 eur/hr?

Thats the fee for my part-time freelance consulting. 200 is on the low end.

Man that's expensive. Here in France, contractors tend to cost less than 400€ a day. That's almost 4 times cheaper than you are.

I guess that's the difference between consulting and contracting.

Huh, I'm way undercharging.

The higher you charge, the more horrible your consultancy job will be generally ;-) I've found €200 to be the sweet spot between actually doing useful tech work and being in nonsense meetings all day.

What sort of tech work do you do, though? Nobody is going to pay 200 EUR for frontend development, say.

All kinds really. From transitioning companies to modern CI/CD practices to security counseling to integration work to helping out with automation and such. It's about 50% low level tech stuff and %50 advisements.

Ah, I see, thank you.

You're welcome!

I think I should stress the point that people will pay more for stupid things such as lessons than they will for actually useful things. For example, you can charge twice as much for teaching people how to use Git than you can for actually implementing the frontend and backend for them.

People are really, really insecure about their own abilities. If you can position yourself in the market as someone who can help them with their insecurities, you're basically golden. It sounds a little .. dickish, but really ,you're doing everyone a favor. So many people get hung up in merely(?) having to make a decision. Making it for them it usually a big help.

That's very helpful (if a bit counter-intuitive), thank you! Isn't it kind of contradictory that, on one hand, you teach people to make decisions for themselves, and on the other you make them for them?

Common mistake -- you might want to look into Patrick McKenzie's material about consulting. Some clients you'll even be able to say "I'm raising rates" and just start getting more money for the same work without issue.

I doubt it's going to be that easy, because some clients already balk at the current rates. It greatly depends on your niche, that's why I asked the GP what he was consulting on.

Clients always balk at rates. Fire the worst ones and keep the ones who pay up if you can. You should always be looking for better clients (i.e., doing outbound sales) if you want to charge more.

As an author of dozens of open-source projects, I was really surprised how entitled / rude people can be. I was even told f-word just because I used babel for compiling JS. I was like WTF. Some people act as if they are my paying customers when I get zero compensation from my open source projects. I just share my work because I think they can be useful for some. I don't have any obligations to solve their problems.

Keep in mind, the entitlement works both ways...

This isnt just for you, more of a general thing. Ive seen it a lot in this thread alone.

Creating an OSS project doesn't entitle you to be treated a certain way either. Nothing does. Being entitled at ALL is bad, so expecting good or bad is just a waste.

I try to live more by the "give everything you can, expect nothing in return, be grateful if something comes" mentality. Shitty people are going to be shitty people, and most of them are shitty for a reason - so feel bad for them, not angry or annoyed at them. Nobody WANTS to be an asshole...

I don't want any thank you notes. Never asked and never will. I just don't like people who are rude, and I find them annoying. I don't know what's wrong with feeling annoyed by them being rude to me.

Because being annoyed doesn't affect them, only you.

Choosing to experience negative emotion because someone does something is self-harm.

When you are entitled to something, you expect it, and you can't expect something and be truly appreciative of it at the same time. When you don't expect good though, the bad doesn't upset you, and the good, you actually genuinely appreciate.

"Choosing to experience negative emotion because someone does something is self-harm."

Hi :-) Fascinating comment. Do you really live that, or just it's something you read/heard and aspire to?

Trying to unpack that a little: Calling experiencing negative emotion (i.e. feeling bad) "choosing to experience negative emotion" seems psychobabble. Do you choose all your feelings? I doubt it. So, you will never feel bad because of anything anyone does, because why would you, and that would be self-harm. All that just strikes me as jargon out of a bad self-help book. It doesn't sound human, but like a robot, or maybe a guru. (e.g. Nisargadatta: 'In my world, nothing ever goes wrong.') I guess that's why gurus/monks/priests aren't supposed to have wives, girlfriends, careers, possessions etc. Because ordinary humans do get upset about stuff. And feel good about stuff. The way you call people "someone" and reduce most of life to "someone doing something" I find absolutely chilling.

That last bit about expectation sounds likes the ridiculous pessimism I thought made sense as a child. If you expect things to turn out for the worst, you will never be disappointed. That was before I realized that in life your attitude makes a huge difference to how things turn out. In the real/everyday world of someones doing somethings anyway.

You dont chose your emotions, you chose which emotions to react to.

There is an entire philosophy built around that concept, buddhism.

I didn't expect anything, but your comments still let me down, and I find you annoying.

What he's talking about is putting yourself in a mindset of very low expectations to maximize your own happiness.

For example, if your baseline "expectation" of people is that they will be rude and shitty, then you won't become annoyed when someone is rude and shitty to you. And when someone is nice to you, they have exceeded your expectations and it makes you happy.

So what you perhaps "expected" is that people generally would not be rude, which led to your disappointment when you encountered a rude person, which ultimately just generated annoyance/unhappiness for yourself (i.e. their rudeness is static regardless of how it made you feel).

The point is not really to go around bleakly expecting everything to be shit all the time, but just in general, the lower your expectations are, the less power you give people to disappoint and upset you, and the more you appreciate people for exceeding your expectations. It's not really about whether it's "right" or "wrong" to be annoyed at them but just a mindset shift for your own contentment.

Its not about low expectations. Its about no expectations.

Buddhism, Daoism, etc... its the same idea. Don't have expectations, good or bad, simply be in the moment.

[edited for spelling]

I would say if you are giving a gift to someone who wants / needs it, you are entitled to a little courtesy.

Nah, you're not.

Entitlement only leads to disapointment. It's bad all around, from my perspective.

You can't be entitled to something AND appreciate it at the same time. So, a lack of entitlement of being treated well leads to appreciating more when you are treated well.

If nothing else, its a fun sociology/psychology conversation.

And I have people demand I use babel. Whatever you do, it'll be wrong either way.

This exists everwhere. Just today I heard it from a member of the archery club. He thought he didn't have to help for free, he wants to get salary for helping with preparation for competitions and other things we do. The egoistic culture is here more than ever.

yes, the sense of entitlement of some people is very surprising.

"If you give a mouse a cookie, the mouse will ask for a glass of milk"

That's a fun expression, first time I hear it! In Polish, you would say "you give a finger, and they'll take the whole hand".

In many Spanish countries we have a similar one: "le das la mano y agarran el codo", which translates "you give them a hand and they'll grab the elbow".

"Give someone an inch, and they will ask for a mile!"

It's the title of a popular children's book :) https://en.wikipedia.org/wiki/If_You_Give_a_Mouse_a_Cookie

Same in Norwegian :-)

Languages and cultures are such a fascinating thing. How can Polish and Norwegian come up with the same expression, without a shared, common ancestry and the countries not being direct neighbours.

"Give a man a fish, and he'll ask for two." Wait...

In Chinese it's give people an inch and they would want a foot.

I like the possibly unintended double meaning of "foot."

Anytime I find a very useful tool[1] or get help from a maintainer or author I always offer them a lifetime, free rsync.net account. A fair number of them have taken me up on it.

[1] Some examples of useful tools include: TextBar for OSX, git-annex assistant ... someone wrote a great encfs tutorial ... etc.

That's an awesome way to reward people! I've gotten offers for money, but actually getting to money to me is more of a hassle than it's worth, so I just decline.

Not sure what your market is but given where we are, accepting bitcoin would probably be easy :)

What makes receiving money difficult?

Not the OP, but if you run a business, you must be very careful to correctly declare all your income, make sure you invoice properly, pay taxes, etc.

Just because soneone “donates” money, it doesn’t mean that you don’t have to pay taxes.

So in general it only pays off if it is above a threshold. If a company offers to donate 2000€, I would find a way to make it work. But if it’s just a one off donation of 10€, I’d rather not bother my accountant with it.

Not being in the US, not trusting PayPal and wanting absolutely nothing to do with any kind of blockchain currency.

It's interesting that we have much simpler payment methods available in the EU, but apparently EU people don't like to pay for things.

I had to look it up in a dictionary:

to take someone up on something = to accept an offer or invitation from someone

Is English not your first language ? That's an incredibly common phrase.

I have to admit I haven't sent a personal note to all of them that I should, not even close, but I have to a few.

I have asked a few for help or clarification too and thanked those who responded. And I have bought a few a beer or beverage of their choice when I could by donating, but that's really not much at all for what I got.

I have never asked anyone to add a feature or fix a bug, but I've not run into to many. I have offered a few hacks when I thought they were worthy of review but it's been a pretty long time since I've done that.

Since it's "Thanksgiving Day" here I will say I am very thankful for the work they do and freely give, and I know I couldn't do what I do without them. Not even.

It's truly an amazing thing for me. I grew up building "custom cars" and worked my ass off to buy tools to make things. Early on I spent at least half of every paycheck to buy tools.

Now, I use tools that are "free" and it's amazing what you can build with them.

Very little in the history of man can compare to it. It's one of the most amazing and best things I've ever seen happen and I've lived in one of the most amazing eras ever.

Right on! I’m also super grateful for all the amazing open source available these days. It’s indeed truly fantastic.

Actually, in all projects I've been involved in I've gotten more than enough thank you emails. Not to mention hooks for consulting gigs (which I dislike and _rarely_ do), conference invites and job offers.

Open source has been _tremendously_ cost-effective for me. I do it for fun and because I genuinely like building open tools people like using.

This is me https://github.com/benjamingr https://stackoverflow.com/users/1348195/benjamin-gruenbaum - I have done some work but there are _a lot_ of people who have made bigger contributions than me.

Wondering if other people feel the same way or not. I _do_ give around ~30$ a month on patreon to projects I like just as a nice "thank you for maintaining this".

> conference invites and job offers.

Don't we all get spammed by these, regardless of where we work?

Also, conference invites usually cost money rather than return money.

Conference speaking invites usually cover the hotel and flight fares (in all honesty, I couldn't really afford attending otherwise).

Some conferences also offer to do paid workshops which are a big factor too.

Both you and the parent are right. A lot of conferences will cover your main travel costs for a speaking invite. But there are often other travel-associated costs so it's usually not really free if it's out of your own pocket.

Conference speaking is often worth it if it's effectively part of your job that someone else is paying for or (selectively) if the exposure for marketing yourself is worth it.

Thanks for working on bluebird, it's a great library :-)

I just wanted to thank NoScript maintainer Giorgio Maone, as he is currently working really hard to fix issues.

NoScript was my favorite add-on and I have no doubt that it will be once again, but it really is heartbreaking to read some of the reviews[1]. Constructive feedback is a good thing, but I just don't understand why some people feel that they have a right to use the f* word when reviewing the new version. Just simply describe what is broken and say you have disabled it until the issue is resolved, and thank the man for his hard work.

Thanks again, Giorgio Maone!

[1] https://addons.mozilla.org/en-US/firefox/addon/noscript/revi...

I thank authors and maintainers and I expect others do too. I just don't do it publicly.

I've thanked authors of small projects which are unique and useful to me just by dropping a short email (not en masse) - Not out of some obligation, but because it's an encouraging thing to receive. I want them to know someone is finding utility in what they have done and appreciates it enough to tell them.

I don't think the larger projects are in need of this though, it would just become noise. This is probably just the cynical misanthrope in me speaking but I can't help but think it looks more like a popularity contest when it's public like this... not that i'm suggesting it could be done any other way for large projects, but then, who is going to read all of them if it's a large project?

I maintain a fairly popular repository, and it does brighten my day when I receive an email like this!

Unfortunately, you are getting more random malformated issues (ie. “DOESN’T WORK. WHEN FIX”) than thanks!

Please don't feel disheartened by those types of issues. They seem to pop up on all kinds of projects after some threshold of popularity.

I haven't originated any popular repos myself, but of the few I have contributed to, these types of issues can be quite common. One of the projects is a math library and a swear 1/2 issues are people discovering for the first time how floating point math behaves and complaining profusely that it's the authors fault.

If you can gain some contributors to help you do the weeding in your issues list it can help with your sanity greatly.

This is one feature that I wish hosting platforms like github/gitlab etc had to help authors and maintainers: ability to grant issue management permissions (separately from full repo access).

> This is one feature that I wish hosting platforms like github/gitlab etc had to help authors and maintainers: ability to grant issue management permissions (separately from full repo access).

You'll be happy to learn that in GitLab a reporter can manage issue but not the repository already. https://docs.gitlab.com/ee/user/permissions.html

Sometimes even a well-formatted, respectful issue feels like a thank you.

> Sometimes even a well-formatted, respectful issue feels like a thank you.

Very much so. I like if people find actual issues in software I helped write and report them. At least if there's some information to go on, or friendly asks for pointers what information to provide.

It's the "BROKEN! NEED FIX URGENTLY" without further information that's insulting.

I'm even OK with somebody expressing urgency, as long as it's clear they're willing to invest enough time themselves.

Interestingly, I tried asking this on Reddit once, and the majority of replies indicated they didn't want a thank-you letter:


It seems like they didn't want a form letter, ie thoughtless spam. They seemed OK with getting personal thank-yous where the writer put some effort into it.

Chiming in as a maintainer who gets lots of thanks. Typically they're genuine. I get thanked 3-5 times a week with no strings attached. It definitely helps me want to do more! I actually use it as a gauge for which projects to spend more time on.

BTW this is actually to promote this: http://www.thankyouopensource.com/

Putting the link here might make it more obvious.

It's a pity that this website is exclusively for repositories on Github and thus contributes to the harmful idea that free software only exists when it is on Github.

We will add other platforms later.

eh, github is hosted git, it costs approximately nothing to export your project to github, and it's a great way to "market" your project.

There is a systemic cost: the cumulative effect of encouraging the expectation to find things on Github. It also costs time to maintain an additional remote if you want to interact with potential contributors.

Using Github only to say "hey, don't forget about this piece of software that you shouldn't be looking for on Github" is a terrible habit as it artificially inflates the importance of Github for Free Software and ... we already have search engines for that kind of thing.

I think maintainers would definitely love more some monetary support rather than just a thank you, specially those doing it in their free time (since some maintainers of big open source projects are well established paid employees).

The problem is that it is hard to transfer money over the internet.

I just wanted to know what bureaucratic hurdles one has to jump in Germany to even be able to receive donations on your webpage. I don't want to go into the gory details, but just come with something that I say for years very often: The surest way to become a terrorist very fast is to read up into law.

And this is only for being legally able to receive and not about the taxation issues that arise when you concretely receive donations.

Also in countries there are lots of preferred ways on the methods for money transfer. For example in Germany many people don't want to use a credit card and prefer SEPA money transfer/direct debit for paying in the internet.

Yes, of course one could use some fancy cryptocurrency, but the legal/taxation issues remain.

Can you go more into your problems, because as far as I know, it is actually not that complicated.

Unless of course, you say you are non profit - then they have to accept that, complicated, yes.

But if you want small donation money for a webpage, it is very easy. You register a small company for it (cost 20-30€, time 20 minutes at the finance agency. and you can use that company for many other similar things). And then you are legally good to receive money in all forms, bitcoins or not. They don't care how you got that money. All that matters to them is how much profit you made in a year. If it is below 16000€ you don't pay (company) taxes - and they totally ignore you for being not important. If you make higher income, well, then you start having a serious business, with taxation and probably more regulation, true.

But for small things I found it not so hard.

> But if you want small donation money for a webpage, it is very easy. You register a small company for it (cost 20-30€, time 20 minutes at the finance agency. and you can use that company for many other similar things).

Which makes the tax declaration much more complicated. Additionally this can easily cause lots of trouble with the employment contract.

But when you make money from a website, it is a buisness. And if it is small money, it is a small buisness - where I found the buerocratic hurdles to be very small.

I mean sure, since I am a libertarian, I prefer there to be no hurdles and no taxes at all, but the majority of people think different. And you are not even a libertarian I suppose? So you just want a excemption from taxes/buerocracy for you? Or just for small things like donation? Yeah well, this is the case right now, but they need to somehow verify that it is indeed small. I found the current situation reasonable. A bit more effort with tax declaration, but not really much, having a small business.

"Additionally this can easily cause lots of trouble with the employment contract."

And this is a problem with your contract then, which you negotiated and nothing for which the state is responsible.

> So you just want a excemption from taxes/buerocracy for you?

I am not against taxes per se, but I am a deep hater of bureacracy.

So how would you do it then? How would you make the process simpler, than it allready is?

Like I thought, you are a typical german who likes to complain, but with no idea how to improve things.

> Yes, of course one could use some fancy cryptocurrency

I paid a bug bounty to someone in Germany from Canada with Bitcoin. I guess I'm a terrorist now.

I don't know much about Canadian law, so I cannot say that you did a criminal act.

But I would wager that the receiver (accidentally!) did tax fraud, since the legal situation around taxation of Bitcoin payments in Germany is not really clear. I can nearly say for sure that if he is not a professional who specializes in international taxation laws (or at least has access to an expert in this area) he probably did a criminal act (which does not imply that he will be prosecuted etc.).

Also I would bet he did something wrong in the accounting of these donation (which can easily happen, since there are so many formal details to consider - do something wrong and you are in trouble). Again a source for big legal trouble. This will rarely be prosecuted, but is nearly always a sword of Damocles.

You can use PayPal. You'll pay a fee if course.

As a maintainer of a relatively successful open source project [1], I find I get a lot of thanks. Yes, it usually comes attached to an issue or a question, but there's not really an easier avenue to just say "thanks" either. So it doesn't bother me too much.

The thank you that comes attached to issues does make me more inclined to help quicker, because I just feel the person is being polite and respectful of the effort.

[1] https://github.com/louthy/language-ext

I think sending "thank you" notes to someone is rare because it's a bit odd to contact a complete stranger and thank them.

Personally I would "thank" someone for example by upvoting their post, commenting on it, or posting their project here or on Lobster, staring their GitHub project, etc. Those are more concrete stuff and personally I would appreciate this kind of actions more than a thank you note.

I have a bunch of open source projects; I'm getting quite good at giving my projects new homes because I don't want to maintain them anymore.

Speaking for myself, thanks is fine but I don't need it; thanks doesn't do anything for burnout. People using my software is enough thanks. The biggest thanks is someone contributing a useful bug fix or needed feature. Time and effort is the currency in open source.

Some thanks would definitely be appreciated at least to balance out the negative minority.

As a maintainer of a project¹ that many use, I've had private messages encouraging me to commit suicide etc. Not ideal.

¹ https://www.gnu.org/s/coreutils

Whoah that's messed up! Who are these people? Other developers or users?

I help maintain an open-source project for AWS. The only thanks I need is that you come by the booth at re:Invent and give me a big hug. I'll be the one winking at everyone assuming they remember this comment from HN.

Which project? I won't be there, but here's a cyber hug to thankyou for your efforts


Simply using open-source projects is definitely a way to say thank you. I have several projects on github and I am very grateful for developers trusting and using my code. It says much more than a 'thumps up'.

Open source is a huge achievement. The sheer diversity, wealth and value of the ecosystem is priceless. A true achievement of our times and Stallman and all the pioneers deserve a gigantic kudos.

Any human group has all the problems that comes with us. Some people are insensitive, self centred, selfish, entitled, immature but there are also others who are helpful, warm, polite, genuinely wonderful human beings.

There is little reason for cynicism or negativity. You get to meet and interact with all kinds which in itself opens your life up to a whole new set of experiences.

Great post. Amazing what a big difference a simple "thank you" can make, and surely helps reduce burnout.

I try to do what I can but I'll admit I'm not consistent. Ranked in order of how useful the project is to me, I will:

Star their repo

Tweet or email them my thanks

Donate cash

If I make it to the point where I develop strong competency with the project and have something meaningful to contribute, I'll start looking at issues and helping people troubleshoot.

I received a lot of help when I was implementing mailman from Mark Shapiro a few years back. I asked what I could do in thanks and he pointed me to his public Amazon wish list. I purchased something off of that for him. I try to make sure I am thanking people for their work that I am benefitting from.

The author is promoting gratefulness, and that is awesome. I try to do my part when I can with hand-crafted emails or messages.

For what it's worth, in our work on the TechEmpower Framework Benchmarks [1], we have received a great deal of positive feedback and gratefulness. We really appreciate it since it makes the project so much more fun and meaningful for us when we hear that people have found it useful (or at least interesting). We never cease to be amazed at the generosity of the community. All of this often makes me wish we could spend more time on the project. (We're working on getting Round 15 out soon!)

[1] https://github.com/TechEmpower/FrameworkBenchmarks

I was once looking for a specific library that does one thing – and found exactly something like it on Github. It did the job so well and without a hitch, that after seeing it has only a few stars and no PRs, I left an Github issue saying thank you to the maintainer.

Some people, rightly or wrongly, feel that their use of an open source library is endorsement and thanks enough, at least until you meet the maintainer in person or have other cause to be in contact with them.

Yes, I believe it's net positive for a project because I tell other what I am using and they get interested, this helps a project get more mindshare and some of them will eventually contribute.

It would be nice if more of the communication with maintainers was done in public. Then discussions such as these could be filled with links demonstrating best practices (or suggestions) in action. (Some people like me may be wary of tying their HN account so permanently to a project.)

Right now in this discussion there are a lot of recommendations but without knowing more about the context in which they are applied it is hard to take them seriously. Specifically, are commenters making the suggestion having put it into practice in an open source project/community, and (if so) what impact has it had there?

As an attempt to provide something similar to what I am suggesting, here is an anonymized conversation regarding a tool I have barely maintained for a few years (merging bug fixes). The tool is used by many database administrators so not programmers but technical. It provides some of the functionality that commercial software charges hundreds of dollars to provide, so it is easy to suggest paying someone else real money to solve any problems.

>On Sat, Jul 4 at 8:06 AM, Maintainer (me) wrote:

I will not be able to resolve these issues in what it sounds like is the timeframe you need.

My recommendation would be that you install the trial version of a tool on the list of commercial alternatives (link). One that I have very limited experience with is [specific recommended alternative]. The page also lists all of the free tools that I am aware of.

Thanks for reporting these problems; I will create issues to track the progress of resolving them.

>On Fri, July 3, User wrote / forwarded:

Can you please help me?

>On Fri, Jul 3, User (#2?) wrote:

I'm getting another one issue. Ie the [tool] generate the script like


While i'm executing this script i'm getting error like "Msg 156, Level 15, State 1, Line 1

Incorrect syntax near the keyword 'IDENTITY'".

[tool] generate a is wrong one? Let me know the reason for this one . and Please address the above issues . I'm eagerly wait for your response.

Thanking is beneficial mentally to the thanker. Do it for yourself.

I interpreted the title as 'We have the policy not to thank maintainers of open source tools. Here is why.' glad it was quite the opposite.

"Maintainers are the friends we want and the employees companies look for. They have passion, willingness to share, and persistence. They are the real MVP and they deserve a thank-you note."

^^ I liked this. Very nice and very true.

Let's not forget companies that provide free services to open source projects.

Such as?

I believe Netlify[0] does that, and I've heard of others but can't remember right now.

Edited to add a link


Jetbrains offers free intellij licenses for open source. Sauce Labs and Browserstack offer free selenium vm’s for open source too.

Why does the author refer to the site as an NGO? Is this in the sense of "Non-governmental Organization?" If so, it seems like an odd thing to emphasize. If not, what is the correct expansion of that TLA?

I recommend to keep open source, but not to clear issues related to other people infrastructure, just about your own infrastructure.

Just want to say thank you for that article.

I recommend to keep open source, but not clear issues not related to your own infrastructure.

Because the friction is too high.

It’s such an unfortunate word to use, “maintainer”... Sounds like a thing that had reached its full potential long ago and the “maintainer” is there to keep it on the road in one piece, for a while yet. It’ll never get better, it’s only ever downhill from there.

(Admittedly, that does describe a certain %age of open source projects).

That's exactly the maintainer's job. To keep it alive while the world is changing, so the software can continue delivering value. The maintainer might also be a developer, or other people might be developers, or possibly no one is developing that project.

Not nitpicking, but “Github uses Rails on Ruby” gave me a jolly laugh.

This reminds me of the Linux kernel build bot.

Hi X,

I love your patch! Yet something to improve:

Thanks for a nice writeup. Now please add some open graph sugar to your markup so I can share it with a nice preview. :)


Shout out to everyone who worked on ublock origin and the filters. Doing God's work, death to advertising.

I thought maintainers did it because they are passionate, not because they are being forced to.

It's mostly a plus for their resumes.

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