I've been working with, contributing to, and loving the Node community since February 2010. I had been watching the project since Ryan Dahl gave his talk at JSConf.eu in November 2009, but didn't really get involved until a few months later. Back then we weren't Nodejitsu. I had a job as a consultant writing bank software and was frustrated more of my work couldn't be contributing to the open source projects I was using. A feeling I've tried to channel into what we've done at Nodejitsu over the last four years. I remember helping Tim Caswell write
.removeHeaders in Node.js core. I remember when Node was an obscure project where every release broke all your code. I remember when literally dozens of notable people joined the community for the first time. I remember meeting these friends at events like NodeConf, JSConf, JSConf.eu, CapitolJS and NodeFest.jp, and my favorite: the original NodeConf Summer Camp. Since those first days in 2009 I have worked to do everything I can to help promote and improve the usage of Node.js, a project I love. I genuinely hope that the work we have done is in-part responsible for the success of Node.js. At Nodejitsu, the amazing people we've hired over the years have literally written thousands of modules, something I’m very proud of.
Being part of a community means listening to it. After listening to the deep concern that has been voiced over our application to register the npm trademark we have decided to withdraw the application from the USPTO. I want to apologize for the way that our message came across. We hastily reacted to something that clearly needed more thought behind it.
The "npmjs" module incident was the unrelated actions of a Nodejitsu employee who (in my own personal opinion) was well within his rights to be upset. I have had several modules with "npm" in their title for a few years with no issue. That is, as I said, unrelated and beside the point. We have no agenda beyond continuing to support the Node.js community and continuing to do business as we have done for the past three and a half years. Our private npm product is just that: a product using "npm" in a nominative way. It is not pretending to be npm. It supports npm for organizations. We think it does that pretty well.
When npm Inc. chose to run the public npm registry themselves, I wanted to preemptively protect both Nodejitsu and the community from the kinds of frivolous and invalid trademark enforcement we have since received from them. I recognize the ominous appearance of impropriety that exists in us registering the mark, and despite our good intentions it is why I am now withdrawing our application.
The mark itself faces challenges outside companies directly related to Node.js. The main one being that the registration process was already started for the "npm" trademark by Nasdaq for "Nasdaq Private Markets" (see: http://npm.com and their USPTO filing) on an intent to use basis in the same classes as anyone registering it on behalf of npmjs: 009, 038, and 042. Given that these two pieces of software (in our opinion) would not be inherently confusing to consumers in the market it is possible that an exemption will be made, but even starting that conversation is months away.
Until then our position continues to be that nominative usage of any trademark is not subject to protection nor requires a license. In this specific case we are merely stating our compatibility with the npm client and registry itself. There are other companies (e.g. Gemnasium, GemFury) that also do this, yet to my knowledge they have not been served with cease and desist letters. This appearance of deliberate targeting suggests that these decisions belong in the hands of a foundation who have different non-commercial motivations.
The reach of Node.js continues to increase because of its intrinsic value and the first principles that were established by the early community members and leaders. Node has matured greatly after two years of 10x growth, so let's treat it with care and respect and find a sustainable future for it outside of any single (or two) companies. This is (and was) my intention: to help form such a non-profit Node.js Foundation to donate the npm trademark to during the registration process. Yes, I acted swiftly, but I did so from a place of respect, not greed.
I realize now that my own actions may very well be closing the door on the goal of a foundation for now, but I believe that is where we will eventually end up. There are now two corporate stewards that have to work together to continue the trajectory of growth Node.js has been riding. Each with their own motivations, and us with ours. While individual motivations are good (they make the open source bazaar work), when they are misaligned across organizations they slow the very growth that they sought to increase.
Finally, I've never known this community to be about the status quo. That honestly speaking your mind will be met with real consideration and not dismissed out of hand. Yes, creating a foundation is change, but the positive effects of creating a foundation have never really been considered in depth. So now in closing I will describe why I believe creating an independent non-profit is the right next step for us and for the software projects that are so near and dear to our hearts: Node.js and npm.
- More transparency. Everything the community receives (as an announcement anyway) is after the fact: release notes on the Node.js blog, new features from npm, etc. There is little beyond Github issues and discussions as to the questions like roadmap and long term plans. A non-profit organization could get more of this tedious work done by having more dedicated resources instead of relying on individual community members to go it alone.
- Better communication channels. Being involved with this community means being online constantly. The amount that gets done without any sort of in-person formalities beyond conferences is impressive. So much more could be done at a regular summit.
- Fiscal alignment. The potential for disingenuous motives is mitigated because the non-profit entity that “owns” the value has no incentive to enforce against anything that is a fair use or nominative use basis.
- Make “getting out of the way” a priority. The growth model that Node.js followed up until recently should be the archetype for new open source projects. Get out of the way of the community and amazing things will happen. This cannot change and any non-profit organization must provide the bare minimum support and no more.
I remember once being told that “Node.js needs the best of everything.” Now, we need the best foundation to support it. Where Node.js needs to go next no single person or company can make that happen on their own. I know the Node.js community will carry on as it always has even without my help. Just know that I am here to give it whatever you, its members, decide is right.