Giving Thanks — On Making my Open Source Work Sustainable
For a change, this is a happy post about open source sustainability.
Open source ain’t easy, especially when you are a self-employed developer and entrepreneur trying to maintain a popular web framework. I take pride in the quality of my work, public or private, and being unable to sustain my standards is extremely frustrating. Like most maintainers of open source software, I didn’t know how to translate free adoption to paid sponsorship.
A year ago, I shared my experience trying to maintain the project, my motivation for doing it, the effort it takes, and what it all means for the health of the ecosystem. At the time things were not great but didn’t hit a wall yet.
After a month, I had 12 sponsors donating $108/month. After 3 months, 20 sponsors donating $350/month. I got my first corporate sponsorship in March when CNN Digital pledged to support the effort at the Featured Level and provided the first meaningful monthly amount. It was followed by only two other companies: Florence Healthcare and SensrTrx. By May, the project edged $900/month (but started losing some early individual sponsors).
While $900/month is a great show of appreciation, it wasn’t enough to sustain the work. Most of the funds came from the CNN sponsorship and while many other companies reached out privately with offers to sponsor, not a single one followed through. Some were outright rude. People from major corporations reached out with offers to help before even asking internally. If you are going to offer an open source maintainer support, don’t jerk them around — wait until you secure the needed approval first.
This frustration reached a breaking point in May this year. It was clear the lack of direct financial support was harming the project.
The response to this thread was quite strong. Many people reacted with frustration and despair over the state of open source sustainability. Suggestions included commercial licenses, paid support, training workshops, and add-on products. These are all great ideas but they are not for me. I don’t want to turn hapi.js into a business or a job. I don’t want to bind myself to legal agreements and SLA. I also don’t have the time to do even more work. I just want to be able to dedicate the necessary time to maintain the framework.
Unlike my initial call for help, putting the community on notice that they can no longer assume hapi.js is a reliable part of their architecture made a difference. A big difference.
A month later, 9 more individuals pledged to support the effort, joining 4 companies: NZZ Storytelling, Healthline, Creative Artists Agency at the generous Featured Level, and Auth0 with a fantastic Angel Level pledge! The project now had $2400/month in pledges.
At this level I was able to resume normal maintenance. I closed all the critical security issues, fixed bugs, and publish minor feature releases. The project was healthy again. This was great but things were about to get a lot better.
A month later, 7 individuals and 2 companies joined: Contentful at the Featured Level, and Lob with a whopping Hero Level pledge! I received another Hero Level pledge (via direct deposit) from a company that prefers to remain unnamed.
With almost $7000/month, things changed dramatically. For the first time since leaving my full time employment in early 2015, the project was again financially sustainable. I wanted to show my appreciation in a big way, not just keeping things stable and secure.
The result was an almost two month long compete rewrite of the entire framework, published this week as v17 (which is a really big deal if I may say so myself). This effort goes far beyond what I would have been able to do without a strong, sustainable support. When the v17 effort concluded, I spent 35 full days working exclusively on hapi.js. Even if you assume 8 hour days (more like 12 hour days) and a 50% discount on my hourly rate (e.g. actual lost wages), the project cost surpasses $40,000.
As part of the v17 effort, I decided to recognize the most generous sponsors with a features position specifically for the release. Lob and Auth0 were joined by a fantastic Angel Level pledge from Condé Nast Technology.
The project currently stands at almost $6000/month (it is unclear if a previous sponsor will continue their pledge moving forward). As we move into 2018, I hope all the existing sponsors will continue to generously support this work.
To date, after a year of sponsorship, I received a total of $40,612.20.
Let me pause for a second to express my sincere gratitude to the generous companies and individuals who supported this work this past year. I didn’t list every individual name earlier because I didn’t want to break the flow of the story with so many names, but I am going to do it now:
Benjamin Flesch, Andres Garcia, Greg Allen, Raffi Minassian, Jeremy Whitbred, Srikanth Minnam, Alexander Alimovs, Adilson Schmitt Junior, Mahesh Babu, Troy Whiteley, Shane Warren, Yehor Sergeenko, Dmitry Savinkov, Nathan Buchar, Tim Boudreau, Marcos Bérgamo, Paulo Vieira, Julian Lannigan, Louis Beltramo, Essau Ramirez, Dave Stevens, PIer Bover, Sven Lito, John Brett, Max Fierro, Raquel Hernandez, David Roncancio, Trey Huffine, Alvin Lumowa, Eric Lanehart, Troy Whiteley, Biao Xie, Elba Sánchez Márquez, Peter Ka, Andreas Zeuch, Christian Giacomi, Saul Maddox, Nicklas Laine Overgaard, Geraint Corneu, Rocky Jaiswal, Chris St, Oakley Hall, Sheridan Tighe, Luke Bond, Finnegan, and Feross.
Without taking anything away from the gratitude I feel towards this generosity, from the perspective of making a living, this is still very much a net monetary loss. The time I spent on hapi.js over the last year far exceeds the amount received (the v17 release alone had an actual lost wages total of double that).
But hapi.js was never meant to become my day job. The goal of seeking sponsorship was to make the work sustainable by providing enough support to make it practical. I’m fine taking some loss on this because the pleasure I get far exceeds it. I just need to keep that net loss to a manageable number.
Some people will look at these numbers and think I am being greedy asking for additional support. That’s understandable. But I am hoping the magnitude of the v17 release will help companies benefiting from it see the value being added and to join this incredible group of individuals and companies supporting this work.
I am also hoping to be able to share some of the funds with other leading contributors within the hapi.js community, providing financial awards for much needed work on some critical components I don’t maintain myself. I have tried to be very clear that these funds support me, not the community as a whole.
I am sharing these numbers to provide full transparency and to inspire others trying to make their open source work sustainable (as well as to set their expectations). I hope companies will not look at these numbers and use them as excuse to justify not sponsoring because “it’s enough”. There is still much work to do. I now need to maintain both the v17 release and the v16 release for those unable to upgrade yet. I also have a long list of planned features and improvements to keep pushing node web development forward.
Last, to all the individuals supporting this work —
Your contribution is appreciated far beyond its monetary value. A continued pledge of even $1 expresses a meaningful gratitude with actions, not just words. I light up every time an email comes in with a pledge, no matter how small. I really, truly mean it.
So, thank you!
It has been a year in open source to be grateful for.