NPMX – a fast, modern browser for the NPM registry

URL: npmx.dev
22 comments

Here's one feature they have that seems important:

> It's good npmx.dev shows git and https dependencies. I still think it's crazy npmjs.org doesn't.

https://bsky.app/profile/dsherret.bsky.social/post/3mer2diwj...

Damn, I didn't even know that npm allows publishing dependencies that have git/https dependencies to the public registry.

A clear miss from npmjs.org on that, but I'm trying to think of when I've ever used it as a primary source for what dependencies a package has, or really even... anything at all. I only end up on it if I'm in a hurry and accidentally click an npmjs link instead of (usually) a GitHub link after using a search engine.

npmx maintainer here! a few answers to questions i see:

we haven’t launched yet! we’re building openly but aiming for march 3. as is par for the course, hn gets the scoop.

i made the first commit two weeks ago, so it’s very new. but we’ve had 900+ PRs and 170+ contributors in the last fortnight… because this is something we care about.

having said that, i’m taking notes about what is and isn’t intuitive

npmjs remains the source of truth for the registry, which is why we get our data from there

but along the way we add a lot of features, like: - claiming new packages from the ui - batch admin operations for your orgs, teams and packages - total install size, vulnerabilities and deprecations for your transitive dependencies - generated docs for packages - linkable package contents - and more

The visual hierarchy seems very flat and inaccessible to me. Everything is monochrome and looks too similar. I have a hard time differentiating between sections.

There are many ways to get more visual hierarchy and I wish you make use of them.

thank you for the feedback!

I will be thinking closely and I really prize all thoughtful feedback like this.

we're currently on a collective holiday: https://npmx.dev/recharging. but when we're back, you would be really welcome to join us and make it better - if you want!

it's open source at https://github.com/npmx-dev/npmx.dev

thanks - through your repo - I have discovered a few dependencies I would like to adopt for my work

Do you have your own dependency resolution algorithm? Can we have the most lightweight node_modules directory?

we do have an algorithm to calculate total install size

it’s not _exactly_ the same as if you install with npm and check the size of your node_modules but it’s a pretty good proxy

having said that, there’s room to make it better

But why?

npmjs.com is not slow and not something I need to interact with very often.

And npmjs.com is still the authority when it comes to publishing packages, no? So I'd still have to use it.

Because they wanted to and Claude didn't tell them not to. Why even ask questions like this at this point.

The website has an about page that explains some of the reasons why this project exists. The first heading in the readme of their repo is "Vision". The creators of this project are people with a track record of creating popular, high quality, useful Javascript projects.

I'd say the probability that some thought has gone into this project it pretty high. Your reply stating that this was created without any though or effort is, ironically the least thoughtful, laziest and least useful response possible.

In the age of LLMs I think we are going to see a Cambrian explosion of software.

Me personally, I’m writing tools for myself wouldn’t have bothered with before due the the time investment needed.

The prolific inventor’s dilemma. But to be fair developers have been making whatever they want since the beginning. Sometimes there doesn’t have to be a ‘why?’.

Haha this. I understand the appeal of "but I can probably roll my own" and "Oh that's a good idea, let's jump into coding" but pre-vibe bots, the effort required would make folks stop and think before jumping into it - is it really a good idea? should I do it just because I can? what problem is it really solving? Who will use this? etc.

I almost never use npmjs.com.

When I do it’s just to click on the repo link.

I just do ghub.io/<package-name>

npmjs.com search input doesn't even have proper throttling/debounce. If you type fast, there is a high chance that you get result of the partial input that you entered than the complete one. Ideally they should discard the response for the old partial search if there is a new one.

It is really annoying if you have a package that is relatively new to the platform, and you type in the exact package name, that package is not reliably the first result.

Minor edge case, but infuriating if you want to check your own packages quickly (without needing to navigate menu > packages > YOUR_PACKAGE).

Still agree with you though, who is npmx actually for?

Whenever I know the name of the package I want to see, I always type in the URL directly: npm.im/[package-name]

A valid use case I can think of is if npmjs.com is blackholed by your company to prevent supply chain attacks

npmjs search is very slow

how often does anyone use it though?

I mean are we really arguing over milliseconds here? I have never in my life had the thought "NPM search is too slow, I need a faster solution"

I have had the thought "NPM search sorted by downloads this week is giving me irrelevant packages" - but I'm not sure this tool solves that.

It can load for a couple of seconds (!) for me

My only pain point, that I solved with a few lines of elisp, was to go to npmjs, to find the repo link for my dependencies. What's in `node_modules` may be compiled to an inscrutable blob and it's rare to find good library docs.

Life-changing: ghub.io/<package>

No idea where I found this but I’ve been using for many, many years.

How's it life changing though? You have to know the package name already to do that. And if you're sitting on npmjs looking at the package already, then you're one click away from Github.

Furthermore... I don't host my packages on Github :-) Don't think that even works for mine.

It sparks more joy than the old one and buddy, that's for frelling enough damn it. Whinge out!

Awful comment. Your comment is bad and should be ashamed.

Use it and disagree! Tell me it in fact does not spark more joy! This just seems pretty clear, ya'll.

It's just generally vastly nicer. I love that file exploration of packages doesn't feel like a last afterthought before leaving the solar system forever.

Cynically, if you can attract a representative sample, you could aggregate and sell analytics data.

Another could be to have an "alternatives" section based on semantic similarity and / or some other features that have signal.

I don't think npmx has better UI/UX than npmjs.com. It could even be said to be worse. The npmx page doesn't have any other colors, it's all gray, and the page has too many elements that are too cluttered. You can compare these two pages:

https://npmx.dev/package/vue

https://www.npmjs.com/package/vue

Decide for yourself which UX is better.

I really like how the did the sidenav scrolling.. I was trying to do the same thing on one of my sites the other month and couldn't figure it out. It's not merely sticky, if you make your window too small for it to fit, it does interesting things.

I think that npmjs uses colors too much to the point of irrelevance. Why are links in the README red? Why is the code tab red? Why is the download graph purple?

Compare your npmx link to vue to https://npmx.dev/package/node-red-contrib-rtc-alert-node . This package uses deprecated and vulnerable deps and npmx correctly uses color to draw attention to it. And because the npmx page is normally monotone, the use of color actually draws your attention.

Regarding clutter - I agree.

- Certain pages load but are not able to load content, e.g. https://npmx.dev/package/@storybook/addon-docs fails to load content with:

> `[nuxt] Cannot load payload /package/@storybook/addon-docs/_payload.json?c459501f-8eb7-49c9-be9c-4a197fa35a39 Error: Invalid input`

- Scrolling fast on Firefox + Chrome is broken and resets the search results page to start.

- Pressing up/down arrows should navigate search item results instead of focusing individual tag elements.

I don’t get it. What does it do? How can I trust it over simply visiting https://www.npmjs.com/ (which is perfectly fine to browse)?

Edit: it wants me to connect to the “atmosphere” - is this the Bluesky App Store thing? I really don’t see how linking my socials to npm search makes sense.

There is no "Bluesky App Store" thing. The Atmosphere integration is an optional feature that adds a social layer on top of the registry, using the AT Protocol.

The word “browser” in the title also tripped me to think about an actual browser

But it is a browser -- just not a web browser

directory perhaps less confusing.

“NPM registry directory” sounds terribly confusing in my opinion, reads like a grammatical mishap

then maybe "npm registry search"?

I'm not sure what features I'm supposed to notice that are better, but having built-in API docs and source code browsing is nice. (Though slightly laggy.)

Nit: there are distracting animations, such as on the weekly download graph.

Confusing name as npx exists (exexutes npm package without install)

The name is npmx not npx but I see where you are coming from.

There’s also https://v1.run/ (packrun.dev) experimenting with an npm registry for agents that adds package scoring and MCP integration for AI coding assistants.

Really fun / cool project!

I've always defaulted to using https://yarnpkg.com/ to search for packages cause the npmjs.com search is so slow, but while the yarnpkg.com search is super fast, actually clicking on a package and seeing the details page takes forever.

This is super fast for both search and the details page, and it's super keyboard friendly which makes it even faster to use in practice. Definitely going to become my go-to search now. Love it, thanks for building it!

Feature request: Im not able to compare two versions of the same package

Looks awesome! Definitely step in a right direction.

The typeahead search speed is genuinely impressive. I was typing package names and the results were appearing before I'd finished the keystroke—that's the kind of responsiveness you usually only see with native applications.

As someone who spent a year obsessing over performance in a .NET MAUI app (IMAP processing, background execution, API latency), I know how hard it is to shave milliseconds off search. The npm registry is massive, and you're clearly doing something right on the indexing or caching side.

Are you using client-side filtering with a pre-built index? Server-side with some clever caching strategy? I'm genuinely curious about the architecture choices that got you to "uncannily fast" territory—especially compared to the official npmjs.com search.

Whatever you're doing under the hood, it shows. Performance is a feature.

Whats even crazier is if you click on thr author link, there other packages are listed almost instantly. Crazy damn speed. Beautiful to look at too.

I agree. I agree.

[deleted]

If I scroll too far down the search results it snaps back to the top. The typeahead search is almost uncannily fast though.

I like it, don't get the negativity in this thread

I think it looks cool. I like the mouseover effects. I still echo others concerns e.g. npmjs.com is the ultimate authority of what NPM packages exist.

Did you create this? If not how did you come across it?

I hate the trend of moving away from being able to search packages from the command line to searching inside a bloated web browser. It had a happened with PyPI. And now npm. Please stop this madness.

What has moved away? You can still use `npm search` just fine.

Browsing is not search though. But I must say that modern browsing is not browsing either, it's search-centered. It would be great to be able to actually browse things like in a store or a library.

Nice job

Aaaand, it's down. Is it's inability to handle light load what makes it modern?

it’s modern, i heard

cool

[dead]

[dead]