One Year with Node.js

June 16, 2015 - by Scott Hammond

This week marks my first full year as CEO of Joyent. As at any company, the job description is multifaceted. Much of my time this past year was focused on the development and launch of Joyent’s exciting new Triton Elastic Container Infrastructure solution. But this year at Joyent was also marked by the evolution of Node.js. Since I arrived in late June of last year, I’ve helped shepherd Node.js through several major milestones — from the formation of an advisory board, to the io.js fork, and the launch of the Node.js Foundation. More broadly, this year has been about betting big on open source. It’s been a year full of successes and positive developments, as well as challenges, tension, and plenty of lessons learned.

The Beginnings

Before I joined Joyent, I was well aware of Node.js’ developer popularity and success — mainly because those who use and love Node.js also love to talk about it. The community around Node.js is incredibly engaged, passionate and serious about the project, and I was immediately drawn to that. However, what I was not aware of were the challenges the developer team and community had faced since Ryan Dahl’s departure.

Half a decade ago, Joyent put trust in Ryan and his vision. I wasn’t at the company then, but Joyent’s team fell in love with Node.js. The company had been looking for a new platform on which to build its cloud management software and Node.js was a perfect fit. Joyent built its stack with Node.js and became one of the first enterprise companies using it in production at global scale. The team decided to take it a step further by hiring Ryan and providing the resources for him to drive the project forward, thus becoming the project steward.

When Ryan left in 2012, there was an unavoidable hole. By the time I jumped on board, Isaac Schlueter and then TJ Fontaine had done some excellent work leading the project forward. Node.js adoption was skyrocketing and the user community was thriving, but the project still faced huge challenges across the board. It was immediately clear that I needed to work with the community to understand and resolve these challenges quickly.

Two Steps Forward…One Step Back

Node.js was five years old by the time I joined Joyent, so I was admittedly late in the game. I immersed myself, spending a huge amount of time just talking to people — users, vendors, developers, contributors — anyone with a stake in the project. Though then-project lead TJ Fontaine had worked over several months to start relaxing the constraints of the existing BDFL model and encourage increased collaboration from the community, issues remained. Developers were frustrated with the project’s pace, contributors worried they lacked voice in the project, and talk of the Node Forward community project, intended to house a forked version, was rampant. My newness allowed me to look at it with a more objective perspective, free from the emotion and long-term ties that many at Joyent had developed over the past half decade. I saw that we needed a better mechanism for getting all constituents’ voices heard, and fast. The Node.js Advisory Board was the answer.

We formed a group representing each type of constituent and have met bi-weekly since mid-October. We immediately formed working groups and started in on governance issues, IP issues, community concerns and more. The prevailing attitude was that a fork was to be avoided, and that we were on a path toward forming a Foundation — together. There was unanimous concern that a fork would create too much disruption in the market, risk in the eyes of Node.js users, and fracturing within the community. So when Fedor Indutny hit the fork button and launched io.js at the end of November, it was a huge surprise. Although, in that moment, the fork represented everything we had been trying to avoid, it ultimately served as an even greater validation that the time was right for the biggest change yet: the establishment of the Node.js Foundation.

Two Huge Leaps Ahead

By Node Summit, we were ready to publicly announce our intent to form the Node.js Foundation. Despite the fork’s timing, this had been a long time coming. As early as last summer, I was meeting with Jim Zemlin from the Linux Foundation to discuss what such a model could look like for Node.js. I had to overcome some of my own reservations about the foundation model. It was important to me that it not become a pay-to-play situation driven by vendor or corporate needs and that it was instead driven by the technical direction of users and developers. Where the Linux Foundation, for example, has succeeded in that regard, other foundations have failed. But by December, I was comfortable enough in a foundation that I brought that recommendation to Joyent’s Board of Directors and subsequently worked with the Advisory Board to put it in motion.

During this time, conversations with io.js never stopped. Reconciliation of the two projects was something we all wanted, but like any community with such a diverse, complex set of needs, it takes time. After much discussion and collaboration on what the future holds for both projects, io.js voted to join the foundation effort and with the continued help of the Linux Foundation, we’re moving forward — once again united — toward a neutral foundation.

The Future

There’s a lot of work ahead to secure a successful future for Node.js. While crucial, an open governance model by itself does not guarantee long-term success. We’ll need to balance the needs of the strong developer community with those of the users and encourage a vibrant ecosystem of technology and service providers to ensure the bright future we all envision. And the best way to strike this balance is through a community-driven, neutral foundation.

I want to acknowledge that the above narrative was painted in broad strokes — there are many people, details, decisions, and discussions that I could not possibly include in a readable reflection on the past year. (You can read more about what’s in store on a nitty gritty level as we build this foundation on the project blog.) Here, though, as I look at the past year as a whole, I can say that the experience of jumping in during a turbulent time and witnessing the incredible growth over the past 12 months, has made my belief in an open source future even more steadfast. In fact, in the past year, I also oversaw the open sourcing of the two systems at Joyent’s core: Smart Data Center and Manta Object Storage Service. When it comes to open source, we’re all in.

Only with rich communities of users, contributors, vendors and developers — those willing to have an intellectual, emotional and financial stake in a project — will we be able to achieve the technological advancements within our grasp over the next decade. You’ve got to be able to collaborate, think bigger than your own organization, get uncomfortable, debate, and endure some tension if you’re going to succeed with open source. And in the case of Node.js, the tempestuous events of the last twelve months shaped the foundation for a bright future.