NPMX – a fast, modern browser for the NPM registry
153 points
1 month ago
| 23 comments
| npmx.dev
| HN
skybrian
1 month ago
[-]
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...

reply
hobofan
1 month ago
[-]
Damn, I didn't even know that npm allows publishing dependencies that have git/https dependencies to the public registry.
reply
paulddraper
1 month ago
[-]
You can publish with any dependency including non existent ones.

There’s not a lot of restrictions npm puts on what you can upload.

reply
insin
1 month ago
[-]
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.
reply
danielroe
1 month ago
[-]
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

reply
Sammi
1 month ago
[-]
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.

reply
danielroe
1 month ago
[-]
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

reply
tcper
1 month ago
[-]
Do you have your own dependency resolution algorithm? Can we have the most lightweight node_modules directory?
reply
danielroe
1 month ago
[-]
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

reply
dzonga
1 month ago
[-]
thanks - through your repo - I have discovered a few dependencies I would like to adopt for my work
reply
KronisLV
1 month ago
[-]
Best of luck, hope it goes well!
reply
hdjrudni
1 month ago
[-]
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.

reply
xhcuvuvyc
1 month ago
[-]
Because they wanted to and Claude didn't tell them not to. Why even ask questions like this at this point.
reply
wartijn_
1 month ago
[-]
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.

reply
indemnity
1 month ago
[-]
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.

reply
hulitu
1 month ago
[-]
> In the age of LLMs I think we are going to see a Cambrian explosion of software.

From Wikipedia: "Application software _runs_ [1] on top of the operating system"

[1] emphasis mine.

reply
djgrant
1 month ago
[-]
Check who the maintainers are. This is highly unlikely. If you want to know what Daniel thinks of Claude read https://roe.dev/blog/the-golden-thread
reply
port11
1 month ago
[-]
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?’.
reply
isodev
1 month ago
[-]
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.
reply
moritzwarhier
1 month ago
[-]
When I checked the site yesterday after reading this, I found that npmx was indeed faster. And on npmjs.org, the back button was broken when browsing code on the site, here not.

However, I would be wary to adopt a third-party code browser for previewing dependency code, even more than using the auhtoritative one on npmjs.org.

Downloading an archive without executing anything and looking at the content would be better if done for getting a peek.

I don't get the strong dislike for the UI though, it looks solid to me. Aesthetically conservative and nothing new, but well-executed, responsive, tidy, and with attention to detail.

reply
pier25
1 month ago
[-]
I almost never use npmjs.com.

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

reply
tmvnty
1 month ago
[-]
I just do ghub.io/<package-name>
reply
riedel
1 month ago
[-]
reply
nickradford
1 month ago
[-]
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?

reply
ireadmevs
1 month ago
[-]
Whenever I know the name of the package I want to see, I always type in the URL directly: npm.im/[package-name]
reply
brycelarkin
1 month ago
[-]
npmjs search is very slow
reply
DeepYogurt
1 month ago
[-]
how often does anyone use it though?
reply
65
1 month ago
[-]
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.

reply
blue_pants
1 month ago
[-]
It can load for a couple of seconds (!) for me
reply
skydhash
1 month ago
[-]
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.
reply
ricardobeat
1 month ago
[-]
Life-changing: ghub.io/<package>

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

reply
hdjrudni
1 month ago
[-]
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.

reply
ricardobeat
1 month ago
[-]
When you see an unknown package in a package.json, you can go straight to the source - no search or visiting npm.com
reply
abejfehr
1 month ago
[-]
A valid use case I can think of is if npmjs.com is blackholed by your company to prevent supply chain attacks
reply
atfzl
1 month ago
[-]
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.
reply
jauntywundrkind
1 month ago
[-]
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.

reply
jasonjmcghee
1 month ago
[-]
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.

reply
pveierland
1 month ago
[-]
- 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.

reply
networkcat
1 month ago
[-]
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.

reply
smarx007
1 month ago
[-]
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.

reply
hdjrudni
1 month ago
[-]
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.
reply
isodev
1 month ago
[-]
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.

reply
uncenter
1 month ago
[-]
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.
reply
iamkonstantin
1 month ago
[-]
The word “browser” in the title also tripped me to think about an actual browser
reply
phildenhoff
1 month ago
[-]
But it is a browser -- just not a web browser
reply
swyx
1 month ago
[-]
directory perhaps less confusing.
reply
vinnymac
1 month ago
[-]
“NPM registry directory” sounds terribly confusing in my opinion, reads like a grammatical mishap
reply
efilife
1 month ago
[-]
then maybe "npm registry search"?
reply
skybrian
1 month ago
[-]
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.

reply
wellf
1 month ago
[-]
Confusing name as npx exists (exexutes npm package without install)
reply
uncenter
1 month ago
[-]
The name is npmx not npx but I see where you are coming from.
reply
meetpateltech
1 month ago
[-]
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.
reply
moritzwarhier
1 month ago
[-]
Function docs (descriptions) in code view could use hyphenation for everything that's not code in backticks.

Currently it breaks words over without hyphenation, which makes some sentences hard to understand.

reply
adithyareddy
1 month ago
[-]
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!

reply
djdnndj
1 month ago
[-]
I like it, don't get the negativity in this thread
reply
oenton
1 month ago
[-]
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?

reply
tl2do
1 month ago
[-]
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.

reply
freakynit
1 month ago
[-]
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.
reply
tl2do
1 month ago
[-]
I agree. I agree.
reply
bromuro
1 month ago
[-]
Loving the user interface and how it is well designed. Very nice work!
reply
Retr0id
1 month ago
[-]
If I scroll too far down the search results it snaps back to the top. The typeahead search is almost uncannily fast though.
reply
souenzzo
1 month ago
[-]
Feature request: Im not able to compare two versions of the same package
reply
serhalp
1 month ago
[-]
We're working on it :)
reply
vldszn
1 month ago
[-]
Looks awesome! Definitely step in a right direction.
reply
hulitu
1 month ago
[-]
Are supply chain attacks included ?
reply
boltzmann64
1 month ago
[-]
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.
reply
beart
1 month ago
[-]
What has moved away? You can still use `npm search` just fine.
reply
Mikhail_Edoshin
1 month ago
[-]
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.
reply
lewissheridan
1 month ago
[-]
Nice job
reply
spiderice
1 month ago
[-]
Aaaand, it's down. Is it's inability to handle light load what makes it modern?
reply
cdaringe
1 month ago
[-]
it’s modern, i heard
reply
khelavastr
1 month ago
[-]
cool
reply