How to Abandon Open Source


I have a character flaw that I’ve been aware of for a while, but am not sure how to address: I’m great at prototyping new projects, open sourcing and pitching them in blog posts, but when I stop using them or when the interesting bit is done, I lose interest and have a hard time supporting and maintaining them. In many cases this goes unnoticed, but a number of times my enthusiasm has resulted in people actually using my stuff (oh my) and that’s when trouble starts.

Some examples:

  • mobl: a programming language I built during my PhD for rapidly developing mobile web applications. Very cool project, but I had no time for it after I finished my PhD. The plan was that the research project would take over, and it seemed that a student there did some work on it for a little while. But after that student finished his master’s thesis the project went completely dead. A big shame, because there were users, including one company that was quite far developing a commercial product using it.
  • persistence.js: persistence.js is an ORM library written in JavaScript, developed originally to be used with WebSQL, but later also extended to work with MySQL and a few other databases using node.js. I developed it because I needed a library like this for mobl, and it really took off. Of the three, this is by far the most popular project and it’s quite widely used. However, WebSQL is essentially obsolete and I don’t use myself anymore. I transferred the project to somebody else, but he never did any work on it either.
  • nix-docker: I developed this while at LogicBlox, who is the corporate sponsor of the nixpackage manager, NixOS and so on. At the time Docker just became a thing, so I decided to develop a prototype of what the combination of the two would look like. As it turns out it looks pretty cool. But: for me it was mostly a prototype, I never used it much beyond that. NixOS developed further and eventually nix-docker broke. I get emails and tweets about it this from time to time.
  • Zed: I developed this editor pretty heavily for 2–3 years, but now that I do very little programming, I just don’t have much use for it. As a result, I haven’t worked on it for a long, long time.

So what to do about it? I have mixed feelings.

On one hand, there’s the theoretical idea that “it’s open source, anybody can fix it!” In practice, as easy as Github makes this, it doesn’t happen in any serious way. I do get pull requests, and usually if it’s reasonably sized I code review and merge them. Whenever it takes much more time than answering an email or merging a pull request, I’m having a tough time getting myself to it. Partially this is due to a lack of time, I do have a full-time job and a family. But honestly, even if I had the time I no longer have any interest.

The only reason I would do anything is out of guilt.

Ideally, I would find new maintainers for projects that get some traction, but in practice that’s really hard.

As a result, I’m thinking if I shouldn’t be more cautious with my enthusiasm about stuff I build, or at least put giant disclaimers on things. As it turns out, when you open source a project, you implicitly promise to support and maintain it until eternity, or until the last user switches away from it. That’s quite a commitment. Of course, these rules are in no way written, still I sometimes get this feeling as disappointed emails keep coming in.

For now, I’m just putting giant disclaimers in the README about the state of existing projects, to at least be more upfront about it.

Anybody got experience with this? Any solutions?