Time to leave.

Knowing when to leave your open source project.

Nolan Lawson wrote a great piece about what it’s like to be a maintainer of successful open source projects.

Nothing that I’ll say here is a contradiction of what Nolan has said. Nolan nailed a lot of the feelings and anxiety I’ve felt myself over the years. But I’ve also moved past those feelings, several times now, and I’m going to share a lot of the conflicting feelings I’ve had during those transitions.

Sometimes the best things for your project, and certainly for you, is to leave a project you’re maintaining.

Congratulations, you won 🎉

More than 500 new projects get published to npm every day. In JS alone that’s 500+ projects hoping that, someday, they might be successful enough to be a maintenance burden for the creators.

Once you’re living under that burden the fact that the burden is a sign of success isn’t much help. It’s hard to pull yourself away from it enough to see it how other people see it. This disparity between how others see the project and how you see it as the maintainer is the most difficult hill to climb when taking the next step.

Here’s a list of thoughts I’ve had when contemplating leaving a project:

  • I’m the only person holding this together, if I leave who will do this?
  • If I leave people will still just knock on my door when there is a problem because I’m known as the person who does this.
  • I depend on this project elsewhere, if I leave it’ll just get worse and then I’ll have problems anyway because it’s my dependency.
  • Nobody wants to work on someone else’s project, especially one the creator doesn’t want to maintain. People will just work on their own stuff, nobody is going to take this on.
  • Nobody has my history with the project, nobody has the breadth of understanding I do, so nobody can replace me.

None of this is true.

Here’s the thing we don’t want to admit: the reason nobody is taking on our work isn’t because we’re a unique snowflake, it’s because we’re still there to do it.

  • Nothing is a larger incentive to contribute something you need to a project than knowing nobody else will do it.
  • Nothing will get people to stop asking you for something faster than you not being there.
  • The easiest way to get people to step into leadership is to leave a vacuum where you used to be.
  • People want to work on popular projects more than they want to work on their own random thing, they just need to see the opportunity, and a big hole in leadership is a great incentive.

Almost all the things I’m known for in Open Source I’ve eventually left to others. The few that I’m still working on I will surely leave some day. In fact, one of the projects Nolan is maintaining (PouchDB) is a project I started… and left.

I have all kinds of things to say about how to attract contributors, how to retain them, and how to build sustainable structures that can outlast you. But even if you do everything right there’s a point at which a project can still depend disproportionately on a few people and the only way to push past it is for them to leave. There are projects where people just won’t step up until you step down.

Open Source is fun, and incredibly rewarding, and whenever it stops being that for you, you’ve gotta move on to the next thing.