The simple story of Node and the path to making it better.
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.
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,
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.
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.
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,
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.
I added several contributors to request.
They did some good work,
Then they faded away,
So I kept doing most of the work.
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.
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.
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.
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.
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.
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 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.
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.
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.