npm Blog (Archive)

The npm blog has been discontinued.

Updates from the npm team are now published on the GitHub Blog and the GitHub Changelog.

Next Phase Montage

tl;dr – Good news!

It is customary for a founder, in the closing chapter of their startup, to ruminate in a blog post about their incredible journey1. When we founded npm, Inc., I knew that I was signing up for a post like this someday. I’m extremely thankful that this is the one I get to write2.

history and origin

Back in 2009, after too long without a vacation, I quit my job, in hopes of discovering what happens when I untether my creativity.

What happened is I wrote a package manager.

I created npm with the goal of sharing modules in a tiny group of nerdy weirdos who’d decided to write web servers in JavaScript. From that niche beginning, npm grew, slowly but surely, the background project I’d greedily steal away time for.

At the end of 2013, npm hit a rough spot and we had to make a decision. This was the first big bookmark in the npm story, when the project could no longer survive on donations. We made some slide decks and raised an amount of money that seemed enormous at the time, but inevitably got spent really fast.

the part where i talk about startups

Running a company is hard. It is grueling, unglamorous work.

I don’t want to make it sound completely terrible. There are definitely a few awesome parts. But once is enough for me.

Throughout this journey, our north star has been the mission that we founded this company with: reduce friction in JavaScript software development.

I have a set of goals that I wrote down back then, and have shared openly with the team. They haven’t changed much.

  1. Keep the npm registry running forever (not only for the life of the company).
  2. Be a company that we can all enjoy working at, and do the best work of our careers up until now.
  3. Get a big enough exit that I can quit my job and see what comes out of me a second time.
  4. Share the rewards equitably with the people who got npm to where it is.

There are few unmitigated successes or failures in the real world. But this is a win, and a good one, for me and the team and the entire JavaScript community.

We have made tremendous progress on (1), and that’s the thing I’m happiest about in this. As far as (2), there’s been ups and downs, to say the least, but the bright spots outshine the dark. I’ve lost some valued friendships in the process, but made a few as well. On (3), well, I’m still working a jobby job, but I always knew that was a long shot, and “make npm a better package manager” is a job I enjoy. And as for (4), I’m proud of the deals that we’ve been able to negotiate for the team.

It’s not a kajillion billion dollar 10x startup cinderella story, and we’ve taken our hits, but in the end we’ve done right by our community, team, and careers, and I’m extremely proud of what we’ve achieved.

the part where i talk about the company buying us

One of the questions founders get asked a lot is “what might your exit look like?” I always mentioned the big tech companies as possibilities, and GitHub as a sort of “wishful thinking” option.

I’ve been following GitHub’s trajectory closely since they came to Yahoo! to give a talk about git and social coding way back in 20093. It’s been a huge part of my life ever since I dove head-first into open source as a lifestyle choice.

When I saw the GitHub Packages beta announcement and demo at GitHub HQ in San Francisco, I remember turning to Shanku Niyogi and clumsily blurting out, “Why aren’t you trying to buy us?”

It seemed so maddeningly… obvious. Forget about whose logo is on which webpage, just… if you’re going to do this thing, do it right, ffs. This clearly needs to be integrated with the actual registry in a very deep way. “I mean… You see that, right?” (I think he probably did. And if he didn’t, then props to him for taking my reaction as flattery or a good idea, rather than condescension.)

What I didn’t really expect at the beginning of the acquisition process was how much I’d genuinely like everyone I met at GitHub, starting with my initial conversations with Nat, as well as all the people on the team he’s built. As we dug into the technical and strategic plans for how npm would fit into the vision of GitHub moving forward, it became clear that this isn’t just a good option for the JavaScript community – it’s significantly better than what npm, Inc., can provide on its own.

There are not many companies that can claim to have the kind of fanatical commitment to open source that GitHub does. In the track record of Nat and the team he’s assembled, there’s really something special here that I’m thrilled to be a part of.

I’ve said countless times before that I wouldn’t let the registry go someplace that won’t take care of it. (See goal (1) above. I’ve sacrificed years of my life and put a strain on many personal and professional relationships in pursuit of that goal.)

As GitHub has branched out into other aspects of the end-to-end developer community experience, it’s natural to see how the JavaScript package management process fits into that story. It’s not a loss leader or an experimental add-on or a way to quickly hire a team. Rather, the npm registry is a significant and concrete strategic asset serving GitHub’s mission of eliminating transaction costs in software development.

That’s important.

the part about what comes next

Today, npm serves over 1.3 million packages to roughly 12 million developers, who download these things 75 billion times a month, and all of this is growing at a rate that ensures these massive numbers will seem small in a few years.

Our commitment to that community is to keep the npm registry free for open source development for the foreseeable future, and continue to improve the npm CLI. At GitHub, npm will have the added support and backing of one of the world’s largest companies, behind the world’s largest community of developers.

There are some awesome opportunities for improvement in the npm experience, to meaningfully improve life for JS devs in countless large and small ways. We’ll be making things more reliable, convenient, and connected for everyone across our vast interdependent JavaScript ecosystem.

For six years, in the grind of a startup, we’ve had dreams too big to dare hope for. This next chapter is a chance to realize those dreams.

This is the end of “npm, Inc.”, the Delaware C Corp. But it’s an exciting upgrade for npm.

[1]: Reference joke Our Incredible Journey

[2]: It’s also worth noting that GitHub allowed such a long, nuanced, and candid announcement as this one, and didn’t push for a watered down corporate version. Cultural alignment is a good sign.

[3]: Check out the date on the post for that talk. Then note the date on this commit. It’s like some kind of cryptic message from the past, and it’s weirding me out, tbh.