Kik, Left-Pad, and NPM — Oh My!
In case you haven’t heard, a dispute between Kik Messenger and left-pad creator Azer lead to a tremendous amount of builds issues the other day. You can read the accounts of Kik and Azer for yourself but, like any citizen of the web, I am weighing in with my own thoughts and opinions.
The short of it is: Kik wanted the kik package name on NPM but Azer already had it. After a short altercation between Kik and Azer, NPM made the decision to let Kik take over the package name. Azer was outraged by the decision and un-published all 100+ NPM packages, breaking a lot of builds in the process (even some of the builds at Kik Messenger!).
Who’s the Bad Guy?
A lot of people form very quick opinions on who the bad guy is in this story. Some say it’s the Big Bad Company, because they are trying to keep the Little Guy down, using their power and authority to get what they want. Others blame Azer for his irrational and exaggerated response that lead to hundreds or thousands of Node.js builds breaking all over the world.
Well, neither group is right or wrong. Both players are the bad guys. And NPM, which is receiving a lot of backlash, actually acted the most reasonably of all participants. And if you want to read what NPM has to say about this whole event, including their name dispute and resolution policy, you can read about it on their official blog.
Kik Was Being a Dick
The now-public correspondence between Kik and Azer seems believable, and neither party has openly denied the claims of the other in this regard, so we can work under the assumption that this information is correct, although perhaps there are missing pieces not released.
However, Kik did not paint itself in a pleasing light. I’m going to quote Kik’s publishing of a message sent by Bob Stratton, their patent agent.
We don’t mean to be a dick about it, but it’s a registered Trademark in most countries around the world and if you actually release an open source project called kik, our trademark lawyers are going to be banging on your door and taking down your accounts and stuff like that — and we’d have no choice but to do all that because you have to enforce trademarks or you lose them.
This was a very poor way of handling the situation. If Kik wanted to be diplomatic and Bob is not your lawyer, don’t let Bob speak to Azer. Seriously, why is a mere patent agent and not a patent lawyer speaking to anyone on behalf of Kik and making veiled threats regarding a potential dispute over a registered trademark? Kik really screwed up here.
Bob jumps from “let’s be nice about this” to “let’s make threats and bully you” after a (supposed) single and unfavorable response from Azer. That’s just not good PR no matter how you look at it. And using the name kik for an open source project that has nothing to do with messaging and chat doesn’t put it in conflict with Kik’s trademark and probably couldn’t be used as the basis for a lawsuit. I say “probably” because when it comes to software, patents and trademarks can be very subjective to the lawyers, judges, etc. involved and not always end the way they should.
The better route would have been to simply re-iterate that Kik was working on a package they wanted to put into the NPM registry and that the naming conflict could have caused issues once the project was released and other developers started looking for a Kik Messenger package and found something wildly different. It’s a valid concern. If that didn’t work, just stop communicating with Azer and work with NPM directly. After all, NPM has a policy dedicated to name dispute resolution just for such an occasion.
Azer is a Child in a Tantrum
Azer’s kik project is not an old project, at least not very old since the initial commit which was less than 6 months ago at the time of writing this post. Compare that to Kik Messenger’s 6 years of being public. A lot of people know Kik as the chat application, not as some small pet project on GitHub/NPM.
If Kik Messenger really is releasing a Node.js package and they want to include it in the NPM registry, I (and likely many other developers) would expect their package to be accessible via “kik” in the NPM registry. If Azer had actually considered any of this, he might have taken the grown-up route of working out a plan to give Kik Messenger the NPM registry name and move his own work to something like “kikstart”.
And to be clear, I don’t suggest this because of Bob’s dubious trademark threat. When I said at the beginning of this post that NPM acted most reasonably, this is why. They publicly stated that they believed Kik Messenger was a widely-known name (they are) and that any package they published that provided integration into their Kik chat application should be accessible via the “kik” package name. That’s a completely reasonable assumption.
Even if Azer didn’t want to comply because he felt it would let The Man win, un-publishing all of his packages was equivalent to a child having his toy taken away and then throwing a tantrum because of it. The mature solution would have been to give some heads up to anyone that depended on his projects. The community is vigilant enough that someone would have noticed, circulated the news, and Azer could have started transferring ownership of any unwanted modules to other maintainers. That’s not me saying all 100+ modules he should transfer, I’m just saying that for some packages that would have been a possibility, especially if he wasn’t actively maintaining them anymore.
I think NPM did the right thing. They calmly assessed the situation, determined what would likely benefit the majority of developers, and made a reasonable judgement. Unfortunately people only see them as “backing” Kik Messenger. And as I said above, Kik Messenger was definitely a bad guy in this, thanks in large part to the poor and misguided communication efforts lead by Bob Stratton. NPM might have ruined themselves by being the most mature party in all of this.
Kik Messenger has now been painted in a very bad light. Personally, I don’t find them a major competitor to some other chat applications out there, like WhatsApp, Telegram, and more. It’s possible that whatever momentum they built up to this point will start dying down if this gets more publicity. But perhaps not. I doubt many of its current users will switch away because of this, but it could certainly hurt their relations with third-party developers in the future.
Azer should be taken as an example of what not to be in the open source community. He’s made some great contributions and is an active member in the community, helping out a lot of people overall, but lacking in both communication skills and personal maturity. The way he allowed his conversation with Bob to degrade so quickly does not paint Azer in a good light. And he should have taken at least a day or two to get word out about the inevitable purge of his packages before he did so.
In the end…
It doesn’t even matter. Some companies will generally try to bully smaller groups or individual developers for their own gain, and some won’t. Some developers will be very cordial and sensible to work with, and some are like big babies. Some people will try to do The Right Thing but end up being damned if they do and damned if they don’t.