Today, after nearly a year of work by a whole bunch of people, I am so happy to see the official launch of the Node Foundation!
I became involved with Node.js over two years ago and two of my cofounders, Ben Noordhuis & Bert Belder, have been contributing to Node.js since 2010. In that time, Node.js had been managed as a community project, but also during that time, concerns about “corporate stewardship” of the project have created uncertainty.
From here forward we can all be certain that:
- Node.js is a community project with open transparent governance
- Node.js has an independent non-profit backed by the professionals at the Linux Foundation to care for its administration and long-term success
- Node.js has a thriving technical community, including participation by the members of the io.js community which formed in protest of the previous Node.js governance and have recently voted to merge efforts with Node.js and the Node Foundation
For more information about io.js and Node.js including technical differences and recommendations about which to use in the transition, please see our blog post from last week.
How the Node Foundation came about…
From my earliest days interacting with Node.js, it became apparent to me Node.js belonged in a foundation. This wasn’t personal opinion or special insight – it was just listening to other participants in the ecosystem. StrongLoop’s first customers, some of the corporations now seen as leaders in the Node.js ecosystem, would ask me, “How can we be sure Node.js is here to stay when it is governed by a startup that most people haven’t heard of, one that is vulnerable to going out of business or being acquired by someone who isn’t interested in Node.js, or can unilaterally shift their direction or priority?”
This kind of questioning and uncertainty got in the way of many projects’ adoption of Node.js. The explanation that worked for insiders; that it really was a community project, that if a corporation took it in any direction the community didn’t like the community could fork, that no corporation owned a majority of the code, etc., was lost on most decision makers and even community members. The reality is there were too many details, too much to understand or take on faith, and too little transparency. I realized it was important for Node.js’ longevity and the growth of the movement and community that we all love for this set of questions to be easy to answer. Just make it as simple as: Node.js is a community open source project. Node.js being in a foundation makes that immediately clear.
The big challenge was that setting up a foundation for an open source software project, and then operating this foundation with all the legal, marketing, event planning, fundraising and financial infrastructure, is a ton of work. Recognizing this, a few of us in the community were trying to figure out a good path forward and formed a working group, which was known for a while as node-forward, for this idea of independent transparent governance. For as much enthusiasm as we all had, each of us had other jobs, limited time, and little background in starting and operating a foundation.
A turning point was an unexpected encounter in March 2014 with Jim Zemlin who heads up the Linux Foundation. I had been invited to speak at the Open Source Think Tank event about Node.js and the Internet of Things (turns out Node is being used for IoT projects all over the place). At this conference I was fortunate to run into Jim. Jim had tremendous excitement for Node because many of his staff were using it but he wasn’t that connected to the community and wanted to know about it. I had been thinking a lot about this foundation idea and thought Jim might have a perspective. Within 5 minutes we were having a mini love-fest that evening at the bar in Calistoga because what I hadn’t realized (nor had anyone else working on this) was that the Linux Foundation had a ready-made platform for helping people to start and host their own foundations for open source projects. We outlined the beginnings of a plan.
Jim worked his angles with large corporations who participate in open source and I worked mine with the node-forward group and the technical community. A Node.js-specific foundation, administered by the Linux Foundation, with an open and transparent and community-governed Node.js (or equivalent if we wouldn’t be able to use that name) was the idea. Quickly some allies and supporters jumped onto this vision, including some of the Node.js core maintainers, some organizers like Mikeal and Izs, and another person we were lucky to find: Todd Moore from IBM. Todd had just been through a similar process with Cloud Foundry and had the optimism and experience to know it could be done. Plus he could bring money. With this we had technical talent, organizing power, professional governance, and a benevolent brand backer.
What the slowly-expanding group needed next was some confidence that the project could actually work this way.. Node.js had been technically governed by a “Project Lead” or BDUCAA (Benevolent Dictator Until the Corporation Appoints Another) who made the releases. The foundation proposed to use a Technical Steering Committee with a consensus-seeking model and voting as a last resort. There was some question in the community about whether a committee-based model could effectively govern the project, keeping it going with a rapid pace while balancing the many needs of the community.
The node-forward fork, which was launched publicly as io.js, was the experiment that tested this and it succeeded fantastically. In a short period of time the committee governance model unleashed innovation and gathered a community of active contributors. So many people jumped in and contributed in really important ways, inspiring everyone. With all these pieces taking shape, it looked like an independent open Node.js could really work. Scott Hammond, a new CEO at Joyent, also noticed this and set up the Node Advisory Board whose members took note of all this progress. After many meetings the recommendation was clear: Join the momentum of the community together with the momentum of the brand. The Node Foundation should manage a project called Node.js not something else.
Once we knew this was the track we were on, everybody worked diligently to make it happen. From the lawyers at Joyent to the community contributors working on build systems to the maintainers on the TSC to the corporate sponsors who would back the foundation, there was plenty of work to do and it took many months. All of that culminates with today’s announcement. Many many people put so much work and faith in to get to this point, and now we’re all depending on each other to keep it going.
This is not the end of a story. It is the beginning of a new way for Node.js and all of us in the community who work with it, on it and around it. For many it looks like the same way as before and that’s by design – the foundation largely formalizes how Node.js already worked. But it insures that how it works is easy to understand, easy to explain and easy to join for now and the future. I hope you share my excitement as we kick off this new chapter of Node.js together.
StrongLoop is here to help
If your company is looking for products to help it be successful with Node.js, StrongLoop has the tools you need regardless of where you are in the development lifecycle. Also, if you need technical support, training or consulting for either io.js or Node.js, we can help there too. Drop us a line at email@example.com to start a consultation.