Look what we found under the tree!

Happy holidays from npm! We’re sorry we couldn’t get you all socks this year, but we have a gift we hope you’ll like.

Today, npm and npms.io are proud to take the wrapping paper off a completely revamped npm registry search experience. It’s available today on npmjs.com and available in the npm CLI application after the holiday break. Give it a whirl!

The problem: big numbers are big

It’s been apparent for some time that the search feature on npmjs.com was lacking, to put it mildly.

Why? One word: success.

The npm registry has grown beyond even our wildest dreams. In 2014, the registry had 60,000 packages with around eight million downloads per day. We’re now close to 400,000 packages and 300 million downloads every day. In a very basic sense, our search just wasn’t built for that large of a registry.

The problem extended beyond sheer numbers, though. At the same time as our community has grown, it’s become obvious that code quality — features like whether a package is still maintained, and how often; and whether a lot of developers depend on it — is an important consideration, too. npm is, and always should be, home to works in progress, first packages, and even, uh… this stuff — but the community also depends on us to help point to reusable code that’s been vetted by others, is kept up to date, and works well for a given task.

The solution: our awesome community

Look, search is hard, and we’ve been busy. Fortunately, help was available from — who else? — the community. In this case: André Cruz, CTO at MOXY in Porto, Portugal, who saw the need and attacked it.

It was a pity that such a great package manager and community had its search engine pulling it down. I saw an opportunity to make a proper alternative that, given enough dedication, could completely solve the problem.

Solve it he did, bringing on another André — André Duarte of Feedzai — along the way. The project that eventually became npms.io started as a small side project but blossomed into a full-fledged solution to npm’s search problem.

The first commit happened on the 24th of January, and after a few months of hard work and sleepless nights, we were able to validate that our strategy was right.

npms.io launched on July 12th to rave reviews. Almost immediately, we reached out to os Andrés to figure out a way to work together. Our Benjamin Coe worked with them to integrate npms’s search methodology into the npmjs.com user experience and scale it to power over 1.3 million searches a month.

We consider this a flagship example of npm’s approach to building software. We’ve always favored working with existing technologies if possible rather than reinventing the wheel — so we’re using a technology that grew out of the community.

The future: more amazing things

Today’s release is just the start. Because npm search is powered by npms, that means our search is open source, and you can help. We’re looking to build a small team around npms that will push the project further and keep it sustainable. Take a look and get involved.

When developers devote time to building amazing things and sharing them back with the npm community, it validates and strengthens the philosophies behind open source development. Being able to more quickly discover, share, and contribute code empowers all of us to build more amazing things.

As gifts go, we think it beats an ugly sweater. Please enjoy, share your feedback, and watch this space for more awesomeness to come in 2017.