What Happens When You Want to Retire from GitHub
And some things I wished I’d known about open source
Three years ago I essentially stopped maintaining my public code repositories on GitHub. Things were quiet on them, but occasionally I’d get a pull request from some poor soul, and I’d let their efforts languish, putting off the work to review it and make sure it fit. All of my repos were in unmaintained limbo, as it seems to happen to many projects on GitHub.
I felt bad about the wasted work people were putting in, so a couple years ago I decided to be explicit about the fact that my repos just weren’t being maintained. Little did I know this would be an epic mistake in some regards.
Many of these projects I hadn’t touched in awhile. One of them still had a contributor that I trusted, to whom I transferred it. Several of them had a good alternative already out there surpassing them in the Node.js world. For those I added a message to the README about the alternative. To all of them I added a simple, but obvious “UNMAINTAINED” to the repo description.
Where things were once quiet, there was sound. Once I’d made it explicit, I got a large uptick in contact. A couple people in the mix were asking to help out, others were upset, but many people just wanted to know why I wasn’t maintaining my GitHub anymore. Total strangers requested my personal reasons for stopping. No context, just “why aren’t you working on your GitHub projects anymore?”.
I took all my contact info down, but the emails and tweets kept coming steadily. Some people would keep contacting me regularly despite me never replying. I wrote a personal blog post about something unrelated and someone commented along the lines of “this is a sad story, but could you reply to these GitHub comments?”
This difference was remarkable. I regretted it and thought maybe I should have let things fade gradually into obscurity, but I still thought it was The Right Thing to Do given the capacity I had. More recently, I thought about deleting my Github account, but instead I tried a last resort. I removed my real name and just put up “Don’t Contact”. In the past couple weeks since then, I haven’t had anyone contact me! So, I’m very relieved that’s worked.
It seems like there’s no good way to admit bankruptcy on GitHub. All the while that I’d been creating these projects, I’d banked on everyone remembering “If you don’t like it, fork it”. In reality, it seems like forking isn’t accepted as a solution.
I mainly just wish I’d never gotten into this situation.
There are a few different kinds of open source. The open source in question involves writing some code as a personal side project, putting it on GitHub, and maintaining it without the support of an organization or employer. I’ve actually spent several years of my career on a different kind of open source: paid, organization-backed projects. This is just about the GitHub side project kind of open source.
I did a lot of this kind of open source a few years ago. Node.js was just starting and I was churning out libraries to fill the gaps for my other projects. I put every single side project on my public GitHub. I thought that it would just add more knowledge to the world, and maybe someone else could use my code or library.
This is probably the thing I would do over again. I might put one or two of these libraries up for public consumption, but definitely not the 20 or so that I did. It might be that I could have correctly maintained just one or two libraries without too much pain.
I say that I would still have put a couple of these up because there is one, and only one upside to open sourcing a side project as far as I can tell. That is, feeling like you might have helped out other people a bit. There are a couple projects in mind that might have helped a bit, enough to offset the downsides.
You might notice some upsides missing. One of which is professional opportunities. I don’t believe any of my individual repos got me anywhere closer to a job. What I learned from coding the projects got me a lot of experience, but they didn’t need to be open sourced.
And yeah, the downsides. This post by Nolan Lawson is an accurate description of the work involved in maintaining an open source project without organizational support. There’s a massive amount of tedious effort involved.
There was also a moment where several well-known, established programmers publicly made fun of some of the code I posted. This was at a time where I was still junior. It took away my confidence in my coding ability for awhile. It’s ironic because I’ve found the best way to build confidence is to do hard things you didn’t think you could do. Coding up these libraries and getting them working gave me real confidence in my coding. But, once again, I didn’t need to open source them to get that benefit.
I personally, despite a common mantra, regret many things I’ve done in my life. One of them is open sourcing all those side projects. I would have open sourced maybe a couple of them, and otherwise gotten experience from working on an established open source project, or my own projects in private.