Guilt-Free Motivation in Open Source Communities
I spent three years contributing to an open source project I had stopped enjoying. The guilt of walking away kept me there through two rewrites, a maintainer transition, and a long stretch of merge requests I no longer cared about. When I finally quit, the project survived, the maintainers were fine, and I felt lighter than I had in years.
<aside class=”edljx-related-tools” style=”float:right;clear:right;width:320px;max-width:38%;background:var(–brand-surface,#ffffff);border:1px solid var(–brand-rule,#e6e1dc);border-radius:0.75rem;padding:1.25rem 1.5rem;margin:0 0 1.5rem 1.5rem;box-shadow:0 2px 8px rgba(107,33,128,0.06);font-size:0.9rem;color:var(–brand-ink,#1a1a1a);” aria-label=”Related tools”>
- item” style=”margin-bottom:0.85rem;padding-bottom:0.85rem;border-bottom:1px solid var(–brand-rule,#e6e1dc);line-height:1.4;list-style:none;”>https://b3log.org/siyuan/” target=”_blank” rel=”noopener”>SiYuanitem” style=”margin-bottom:0.85rem;padding-bottom:0.85rem;border-bottom:1px solid var(–brand-rule,#e6e1dc);line-height:1.4;list-style:none;”>https://umbraco.com/” target=”_blank” rel=”noopener”>Umbracoitem” style=”margin-bottom:0.85rem;padding-bottom:0.85rem;border-bottom:1px solid var(–brand-rule,#e6e1dc);line-height:1.4;list-style:none;”>https://strapi.io/” target=”_blank” rel=”noopener”>Strapiitem” style=”margin-bottom:0.85rem;padding-bottom:0.85rem;border-bottom:1px solid var(–brand-rule,#e6e1dc);line-height:1.4;list-style:none;”>https://typo3.org/” target=”_blank” rel=”noopener”>TYPO3item” style=”margin-bottom:0.85rem;padding-bottom:0.85rem;border-bottom:1px solid var(–brand-rule,#e6e1dc);line-height:1.4;list-style:none;”>https://www.facebook.com/groups/remotejobsfordigitalnomads/?ref=group_header” target=”_blank” rel=”noopener”>Digital Nomad JobsCurated by https://edljx.com” target=”_blank” rel=”noopener” style=”color:var(–brand-accent,#ff8c42);text-decoration:none;font-style:normal;font-weight:500;”>edljx.com
- A private message to the maintainers saying you are stepping back
- A public note in the project’s communication channel (Discord, Matrix, mailing list) so other contributors know
- A short written summary of anything only you understood, even if it is just a few bullet points
- A commit or two to clean up pull requests you have open
- A graceful response to the inevitable “are you sure” question
</aside>
This is the part of open source nobody talks about. We talk about contribution, recognition, sustainability, and burnout. We do not talk about the fact that the relationship between a contributor and a project is allowed to end.
The pull that becomes a leash
Most open source contributions start voluntarily. You use a library, you find a bug, you submit a fix, the maintainer merges it, and you feel useful. A few months later you have commit access. A year later you are reviewing other people’s pull requests. Two years later you are the de facto maintainer of a module you originally only meant to patch.
The project is interesting. The work is meaningful. You are part of a community. None of these things change when you stop enjoying the work. They just stop being enough.
The guilt is the part nobody warned me about. The guilt arrives because the project depends on you in small, distributed ways. If you stop reviewing pull requests, the queue grows. If you stop cutting releases, the users wait. If you stop answering issues, the newcomers bounce off unanswered questions. Each of these is a small thing. Together they form a chain that is hard to break without a conversation you do not want to have.
The conversation nobody wants to have
The first time I told a maintainer I was stepping back, I prepared a 500-word explanation of why. I rehearsed the conversation. I expected pushback, disappointment, possibly anger. What I got was “thanks for letting me know, take care.”
This is the pattern I have seen repeated across a dozen projects since. The maintainers I respect are not holding contributors hostage. They know the work is voluntary. They have lost contributors before. They are quietly grateful for the time you gave, and they want you to leave well, which means they want you to leave at all if that is what is right for you.
The hard part is not the conversation. The hard part is internal. It is accepting that you are allowed to stop. That the work you did does not obligate you to keep doing it. That the project will survive without you, because the project is bigger than any one contributor.
The even harder part is the second-order guilt, the one that says “I should not have stopped, the project needed me, I let people down.” That guilt is the residue of confusing obligation with care. You can care about a project and also not work on it. You can be grateful for what it taught you and also leave. The two things are not in conflict.
The work that guilt produces
The work you do out of guilt is worse than the work you do out of interest. I know this from my own commits. The merge requests I submitted in the last six months of my tenure were functional. They fixed the bugs. They passed the CI (continuous integration, an automated system that runs tests and checks on every change). They were also joyless, mechanical, and noticeably worse than the work I had done a year earlier. The reviewers did not say anything. I could tell from the review latency (the time between submitting a change and getting feedback). Long latencies on a project I used to see respond in a day are a signal.
This is the cost of guilt-driven contribution. You are not producing the best version of the work. You are producing the version that ships, which is below your standard and below the project’s standard. Stopping is not just better for you. It is better for the project, because it frees up the role for someone who actually wants to do it.
There is also a category of work that guilt produces that is actively harmful. The defensive merge request. The drive-by cleanup that breaks an unrelated thing. The release cut that ships a regression because the author was distracted by their day job and tired of the project in equal measure. I have done all of these. I regret all of them.
The trade-offs of quitting cleanly
Quitting is not free. If you are the only person who can do a thing, leaving means the thing does not get done. The trade-off is real. The question is whether the thing should have been your responsibility in the first place, and the answer is often no.
The cleanest exits I have seen share a few characteristics. The contributor gives the maintainers a heads-up before announcing publicly. They document the parts of the project only they understood, even briefly. They offer to be available for questions during a transition period. They do not vanish mid-pull-request.
Here is the minimum that I think is owed, based on what I have seen work:
None of these are heavy lifts. All of them are easier to do while you still feel some connection to the project. Do them early. Do them when you are still able to write the messages without resentment.
When to stay and when to go
The signal that it is time to go is not exhaustion. Exhaustion is rest-curable. The signal is the absence of interest that does not return with rest. If you take two weeks off, do not look at the project, and come back to find that you are relieved to not be looking, that is information. It is not a failure. It is data.
Staying makes sense when the work is still interesting and the cost is bounded. The cost is bounded when you can say no to requests, when your absence does not break the project, and when the people you work with treat your time as theirs but not as theirs to consume.
Going makes sense when the work has become a tax, when the only thing keeping you there is guilt, and when the people you would be letting down are the kind of people who would tell you, honestly, that you should go.
The guilt is the part to be suspicious of. Guilt is not a reason to keep contributing. It is a reason to look carefully at what you are actually contributing and whether the people receiving it want it from someone who does not want to be doing it. Most of the time, the answer is no. They want the work, but they would rather have it from someone who is glad to be doing it.
The community that lets you leave
The best open source communities I have been part of treat departure as normal. People come, people go, the project continues. The communities that make departure feel like betrayal are usually the ones where the maintainers have not built succession plans, where the bus factor (the number of people whose loss would break the project) is one, and where the contributor’s value is treated as irreplaceable rather than appreciated.
If you are a maintainer reading this, the way you let contributors leave is the way you let them know they were valued. A short, sincere thank-you when they announce. A clear statement that the project will continue. A specific list of what they will be missed for, which is also a list of what the project should document so it does not depend on the next person’s goodwill.
If you are a contributor reading this, the permission to leave is already yours. You do not need it from the maintainers, and you do not need it from me. The project is not a marriage. The work is not a debt. The fact that you were useful is a reason to be thanked, and the fact that you have stopped being useful is a reason to move on.
The project will be fine. You will be fine. The open source ecosystem is large enough to absorb both of these outcomes without anyone losing sleep.