I've been a part of the JavaScript toolkit gulp since 2013. And I’ve also just joined the Lifter Engagement team at Tidelift, where I will get to use my open source experience to help other maintainers!
Gulp has been core to much of my professional development career. I was at the meetup where it was originally announced—and immediately started to contribute patches to the codebase and create some of the first plugins!
Gulp quickly became the primary build tool at my company. We decided that I should help contribute to the project as part of my role to ensure it stayed maintained and continued to evolve.
I eventually joined the core team when planning for the next major version began. We had some rough ideas of goals for the next version, but everyone except me moved on to do other awesome things. My first commits that went on to become the basis for gulp 4 were made on February 20, 2014.
Burnout is a major risk to any sufficiently large open source project—especially if only one maintainer is really active. At the end of 2015, I left my company due to overall burnout, so I was no longer being paid to work on gulp.
For many months afterwards, I didn’t touch gulp at all. I felt really bad about not being able to work on gulp and during this period the community regularly criticized the development being stalled, which made me feel worse about the whole situation and increased the duration of my burnout.
After taking a break to recover, I started taking small freelance contracts, but they were never as satisfying as my open source work. Luckily for me, the open source sustainability effort was gaining speed, with a variety of ways for open source maintainers to raise funds for their projects.
I started exploring the space and applied for gulp to be part of a donation platform. This generated some initial interest from individual developers and as the platform grew, some contributions trickled in—totaling about $600 per month. I quickly realized that you can’t build a truly sustainable project by soliciting donations from individual developers. There needed to be funding from the large companies utilizing our software and getting value from it—these companies often pay for commercial support on software, which is something many maintainers already provide for free.
I spent a long time thinking about raising funding from companies and came to the realization that they don’t donate out of goodness, but instead want the kind of assurances and accountability they’ve come to expect from commercial software—things that most individual open source projects aren’t equipped to provide. About this time, I attended the first SustainOSS conference and tried pitching the idea that we needed to create an “accountability organization.” Little did I know that some really smart folks were already working on it. 😉
Raising money was only one piece of the puzzle and certainly was no guarantee I wouldn’t burn out again. Part of achieving sustainability is about making the project survive the loss of a maintainer, which requires building up the community and core contributors.
Projects can attract a lot of collaboration by being inclusive, thankful, and kind; however, they will still miss out on a slice of people who can’t afford to spend time on unpaid open source work. Ensuring contributors get paid for their work can remove this barrier to entry for those people. For example, the new gulp documentation was a collaboration between me and a friend who was transitioning careers into technical writing but wasn’t able to contribute for free.
To secure funding for the documentation rewrite, I petitioned a large company for half a year—finally creating a complete breakdown of tasks with hour estimates, as per my theory of accountability. This seemed to be the persuading factor for them to contribute a portion of the needed funding.
The idea of assurances for companies stuck with me, but I didn’t know how to capitalize on the idea. Thankfully, I found Tidelift in July 2018—and immediately saw the overlap with my vague concepts! It wasn’t long until I applied to lift gulp on the platform.
A few months ago, I applied for a position on the Lifter Engagement team at Tidelift—which would allow me to leverage my experience to help communities outside my own. And just a few weeks ago, I accepted the position! I’m excited to work with all current and potential lifters in this role, so we can pay the maintainers. 🎉
Paying an individual is just the first step in the sustainability story, but the ultimate goal of sustainability is for the project to survive any individual. I’ve begun encouraging the other gulp contributors to receive money for the work they put in and we’ve transitioned lifting of the project to them—though I will still be contributing to gulp in my free time.
I’m very happy that I had the chance to test the Tidelift platform with one package, but I’m excited to scale my overall impact to the rest of the ecosystem. I want every open source maintainer to have the opportunity to fund their work and finally reach sustainability!