Building a Better Node Community.

The simple story of Node and the path to making it better.

Ryan Dahl (@ry) introducing node.js to the world in 2010 and JSConf.eu in Berlin, Germany.

In the earliest days of Node,
Things were simpler.
Few people depended on Node,
And few people used Node.
Even fewer people worked on Node.

Tim Caswell (@creationix) circa 2011 showing node.js on a Palm Tablet.
Isaac Schlueter (@isaacs) before node.js.

When a problem was big enough six of us would talk it out.
The group was based less on merit than it was proximity.
It was anti-democratic,
Anti-open source,
And would clearly be short lived.
I called us the Node Illuminati,
The name stuck.

We figured out early Buffers and Streams.
This worked for a few months,
And then the group central to Node became more international.
The Node Illuminati did not scale.

This isn’t what websites looked like in 2011, I was just even worse at front-end than I am today ☺
Streams session from NodeConf SummerCamp. Many unconf sessions took place outside under this tree.

I ran a conference.
We realized how big Node was becoming.
I ran another conference,
One that was more like an Illuminati meeting,
But with more than six people.
We figured out Streams again,
Or so we thought.

NodeBots Flag, made by NodeBots London. Photo taken at NodeConf 2013 at Walker Creek Ranch.
The audience at NodeConf 2012 in the Imago Theatre in Portland, OR.

A year passed.
I ran another conference.
We realized that Node was huge.
Work on core was eclipsed by the work in modules.
I tried to make the other conference about more than core,
I failed,
But we met Raquel,
And Chris convinced her to do robots again,
But with Node,
So I consider it a success.

We thought modules were small enough to be run by a single person.
Then modules got even smaller.
So small that a person could write hundreds of them,
More than they could ever maintain.

The request contribution graph.

I added several contributors to request.
They did some good work,
Then they faded away,
So I kept doing most of the work.

Rod Vagg, being interviewed at NodeConf 2014.
levelup’s contribution policy, titled “OPEN Open Source”

Rod found a better way to manage projects.
Git is good at removing things,
Getting people to contribute is hard,
When you distribute ownership people contribute more,
And if anyone does something wrong,
Git is good at removing things.

Substack and Dominic Tarr, contributors to levelup. Photo taken at NodeConf.eu 2013

I added everyone who contributed to request as a collaborator.
I didn’t write down this policy.
I didn’t send pull requests for my own work.
I made decisions without gathering or asking for feedback.
As I added more contributors they did some good work,
Then they faded away,
So I kept doing most of the work myself.

Shoutout to Selena Deckelmann who convinced me that posting a Code of Conduct was well worth it.
Famous non-Linus dictators.

When you don’t document things you rely on cultural norms,
Which means you can’t attract people outside that culture,
Your culture remains homogenous.
When you dictate,
You’re a dictator,
Even if you say you’re not a dictator.
People don’t like dictators,
They tend to leave or revolt against them.

A young and clean shaven James Halliday (AKA Substack)

I wrote down the contribution policy for request.
I sent pull requests for my own work.
I started conversations,
I asked for feedback from other contributors.
An amazing thing happened,
People who had already been added,
And were newly being added,
They contributed more.
They stuck around.
They wrote things I thought I’d have to write myself.

Tim Oxley at the beach near Point Reyes Station after NodeConf 2014.

Substack wrote a tutorial.
Rod and Tim liked it,
So they used the same format for more tutorials.
Max and Brian put all the tutorials together on a website,
And created a repo where people could get help when they needed.
They called it NodeSchool,
The name stuck.

Brian Brennan and Daniel Shaw on the beach at JSConf 2014.

I asked if anyone wanted to run local NodeSchool events,
And asked them to share what they learned with others.
These events grew faster than any meetup I’ve ever seen,
But eventually the growth hit a plateau.

Max Ogden at NodeConf.eu 2013
Jessica Lord and Mu-An Chiou at NodeConf 2014

Max and Jessica wrote down NodeSchool’s philosophy,
And how to write new workshops,
And how to run more events.
We make every event organizer an owner of NodeSchool.
We make every event attendee an owner of their event.
NodeSchool is growing again.

Karolina Szcur at CSSCOnf.eu 2014
Shoutout to Lin Clark who brought a great new perspective to JSFest.

What people can do is not theoretically broad and open.
People need to be enabled to do good work.
When you make it clear and obvious what they can do,
More people will do,
And they won’t be people just like you,
Because all of your assumptions that aren’t written down are barriers.
And those barriers are felt more by people the less they look like you,
And even more the less they grew up like you did,
And even more the less they share the same social class.

From left to right: Eran Hammer, Mikeal Rogers (me), Isaac Schlueter, Bert Belder and Alexis Campailla at NodeConf 2014
Partial crowd shot from NodeConf 2014

People love to do work they feel they own,
And that ownership can be shared,
But so is the sense of responsibility.
If you give up your exclusivity on ownership,
If you write things down,
If you make it obvious how to participate,
You will grow,
And your work will be better than it ever was when you owned it all.