In late 2014, the core maintainers of the Node.js open source community decided to fork Node.js in order to create a project named io.js. The core maintainers felt this was a necessary move since many new features implemented in Node 0.11 was unceremoniously put aside by Joyent. Granted Node 0.11 suffered from too many unstable features and Joyent’s call on the matter was correct. However, Joyent overreacted and didn’t incorporate a plan to reintroduce these critical features any time soon. The community understood that for Node.js to remain relevant, it must be updated regularly.
Over the summer of 2015, I attended NodeConf 2015, a conference where the most dedicated members of the Node community get together to discuss and teach Node.js. The mood at the conference was less than festive. The divorce with Joyent proved to be stressful and draining. One of most hotly debated topics of NodeConf 2015 was on the balance of corporate needs versus technologists who don’t mind running cutting edge versions of Node.js/io.js in production. I played devil’s advocate representing corporations who wouldn’t be willing to upgrade to new versions more than about once a year.
Another major topic was on the inclusiveness of the community, and whether it can grow and thrive beyond the group of core maintainers while putting in place strong non-discrimination rules in place.
The human aspect of open source projects is arguably one of the best features of Node.js. NodeConf has demonstrated that the Node community is a few steps ahead of the industry on this one. We must all work to adopt explicit Code of Conduct rules at events we organize to preserve a collaborative and inclusive environment. You can fork the Code of Conduct of the Meetup that I organize.
In 2016, I encourage and challenge you to review your conduct policies and ensure you have something written down and accessible to everyone. I also urge you to go one step further and familiarize yourself with Open Source Governance. Going all in with open source and open governance will soon be the expectation, not the exception.
In Part 2 of this blog post, I’ll cover how Node.js overcame its troubles and set itself up for a bright future.