Is commercial support a viable way to open-source sustainability?
Tommy Brunn
Posted on October 6, 2020
In the middle of the COVID-19 pandemic, I quit my job as a lead engineer at a successful startup and dedicated myself to open-source. As a generally risk-aware person, this was certainly a move that made me uncomfortable, but coming off of a successful career at Europe's largest fintech unicorn I felt like I had the leeway to take some risks.
For the past 3 or so years, I have been developing KafkaJS, a dependency-free, pure Javascript Apache Kafka client for NodeJS. Over that time, I have seen it grow from a small project mostly internal to the company we were working at, to now powering hundreds of businesses and helping thousands of developers.
Tommy Brunn@tommybrunnReally cool to see that KafkaJS, the project I've been working on with @tulios for the past 3 years, has finally passed kafka-node to become the #1 most downloaded #kafka client for #nodejs 🎉
kafka.js.org11:09 AM - 06 Oct 2020
Scaling open-source
Like most open-source projects, one challenge that we always had was finding time to not only develop it further with new features or improving existing ones and handling valuable community contributions, but also providing support to our growing community of users.
At the time of writing, we have approximately 500 developers in our Slack community and there's no shortage of issues being opened on Github that require triage. Over the years, I've been in numerous Slack conversations and video calls with developers debugging whatever issues they are having. This has been enormously helpful in understanding where the rough edges are and where people tend to get tripped up when building NodeJS applications with Kafka. On a personal level, it has also been very satisfying to get to see how KafkaJS is helping power systems in everything from commodities trading to medtech to commercial retail.
However, there are only so many hours in a week that I can spend. Although open-source clearly brings value to thousands of companies, it's rare for any of that value to find its way back to the people that create it, and KafkaJS is no exception in that regard. In order to further scale the project and keep a healthy community going, there needs to be a mechanism in place to fund maintenance and development.
While Github sponsors and other fundraising tools are laudable efforts, in reality they don't provide any meaningful income except to a rare few extremely widely used projects. Even hugely impactful developers like TJ Holowaychuk are barely making anything.
Commercial support
A time-tested way of funding open-source development is providing commercial support. It allows businesses to accelerate development while simultaneously funding the development of the software they rely on - a win-win.
While this is typically used to fund larger projects, I don't see any inherent reason why it couldn't work for a medium-sized project such as ours. There are hundreds of businesses using it that could surely benefit from working with one of the few people that know it inside and out - I know because I have already done it on a volunteer basis for years.
So, given that I'm finding myself willing to take on some risk, I'm giving it a shot!
Whether you are using KafkaJS or are thinking of leveraging Kafka in NodeJS, get in touch and save yourself time and effort by working with an expert. Whether you are just starting out and want to validate your architectural choices, or you are already established and want to solve some gnarly problems together, I'm sure that my experience building secure, performant and maintainable systems in NodeJS can be of help to you!
If you aren't in need of support, but just want to support my work anyway, any contribution via Github Sponsors is greatly appreciated.
Posted on October 6, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.