Post

Not sure this is exactly what you're looking for but it drives me nuts that npm doesn't support JSON5 given how common and necessary it is to edit the package.json file by hand. JSON is not meant to be a format for humans!

- code tab is not linkable, I use runpkg instead - can’t create a package to allow OIDC for first release - have to press 1000 buttons on each repo to configure oidc + disallow tokens

1. Clear distinction between FE/BE/polymorph packages 2. Filter showing esm + packages with builtin types + 0 dependency packages

Integrate auto-generated type docs that shows exports, classes, functions, interfaces, etc. inferred from TypeScript and/or JSDoc. Inspiration: rustdoc or JSR It doesn't have to be as complex as rustdoc, but even something simpler, like JSR has, would be *chefs kiss*.

(Not sure if that counts / is what you asked, but after doing Rust for a while, I've really been missing something like their consistent doc format and integration. It just makes it so much nicer to browse packages!)

I’ve always wanted (mostly) a better API for the registry info (packages, download count, etc). Their website is also incredibly basic, file browser sucks (doesnt push to history api so going back drops your current viewed dir/file).

Weird flow but sometimes I need to check what version of a given dependency a package uses between a range of versions (usually installed to latest). Manually doing this is tedious af.

- Code tab should use URL state (eg: /package/:pkgName/code/?path=dist/index.js#L32-47), and not break the back button - Dependencies tab should pull a total count of sub-dependencies (ie: how much do I pull in from this one dep?) - Dark mode This looks interesting as a temporary fix:

Bjorn Lu@bluwy.me

Some new stuff for my npm userscript. github.com/bluwy/npm-us... Better versions tab, show vulnerability info, new package labels (esm, cjs, module replacements, has postinstall, etc), better settings menu, and more. Screenshots:

I’ve asked this for ages now, it would be good to see dependents ordered by most downloaded. That way, when a breach happens you can quickly see where the next biggest attack surface is.

Searching for packages is quite horrible and often doesn't surface what I want. Just the exploring of packages kinda sucks and could be better.

I feel like the JSR "why" page sums it up pretty concisely: jsr.io/docs/why But the main points resonate w me: 1. ESM by default 2. Runtime agnostic 3. TS by default (emphasis on "default" not "only")

You can look at the "provenance" deployment logic for jsr, I like it a lot: You go there, say "create new package", then add your GitHub repo name + your username or so. Finished. GitHub builds from there are allowed to publish to jsr. Nice!

I think you may also be able to set some more security settings, like who is allowed to publish, but I did not use that yet, since I publish alone right now 😅😂

i will say that it is an absolute nightmare to publish and use private packages on npm, to the point where we switched to nuxt layers hosted in the cloud with our own auth

this worked out better for us anyway in the end because nuxt layer integration is supreme and unless you've got local copies of the layers for dev you'll always have the latest common layers on start of your dev server, i did make a "use cloud hosted layer if no local dev repo" setup

There's no way to check if you can claim a package name without trying to publish. Npm's name similarity policy is naive and considers any two packages the same if they contain the same letters, separated by any number of dashes/underscores/dots . ABC, a-bc, a.b.c, a____b-c are all "similar"

If you have a legitimate reason you can email support@npm and they may be able to unlock publishing of a specific package, especially if you're the maintainer of related names (e.g. if you publish `foo` and wanted `foo-x` but it got blocked, they can unlock it).

Some scoring system with a minimum required to even publish. 10 Points for a readme, 100 for TS support, 100 for regular updates, ... Maybe federation: host an index with hashes and let others host tar balls. Definitely support to publish from my @gitea.com etc instead of only Github and GitLab.

package downloads stats feel noisy and unreliable signal if you try to understand the popularity and growth of a package

If by admin flows you mean things like publishing packages… I’ve published one package to npm and no other experience in tech has made me feel more scared and stupid. The sheer number of options for how you build and distribute an npm package is absurd. I ended up getting a friend to help me.

There's no way of publishing the first release with OIDC, you need to use npm publish like in the middle ages. Only then can you access new package's settings and setup OIDC.

this needs to be native

Bjorn Lu@bluwy.me

Some new stuff for my npm userscript. github.com/bluwy/npm-us... Better versions tab, show vulnerability info, new package labels (esm, cjs, module replacements, has postinstall, etc), better settings menu, and more. Screenshots:

lol, clearly you struck the nerve with this question. Would love to hear what your "reasons" are if you care to share.

here are my 'reasons' not meant as a criticism of npm, to be very clear!

I'm asking because I'm building an alternative to npmjs.com, including the admin ui piece I have a working mvp, although of course it's very 🚧 if this is something you'd like to contribute to, and you've experienced any of these pain points, let me know - always more fun to build together! 🙏

Oh I am a vocal critic! Criticism from the right place is the best way to improve things. Glad to see more folks working in this space, it needs the work. I just wish we could all build *together* instead of having to duplicate so much effort.

I really want better views of dependents, to do things like: - Sort by downloads - Filter be version This would let me find the biggest dependents of out-of-date versions of our packages and help them upgrade.

I own a namespace but haven't able to use it for 2 years. The support ticket was just closed with no response (after 2 years). It was a simple transfer that their system broke.

I would tell[asking for passkey]you my frustrations[asking for passkey]but there's some[cloudflare are you a bot]thing kinda gett[asking for passkey]ing in the way

1. The npm CLI is one of the worst CLIs I've ever used. The most essential commands are missing, the existing commands never feel intuitive. 2. No guardrails for publishing a broken package. The bare minimum npm has to do is publint before npm publish. 3. Recent release token changes is a disaster

Oh, the recent one: No way to configure your email notifications. I spent 15 minutes fighting the UI and lost. I have no clue where email notifications are to be configured. If that setting ever existed, it is exceptionally well hidden.

I've got packages configured identically and some of them publish fine while others throw the infamous 404 meaning 403 meaning something else entirely. 4. Bad error messages (see above). 5. No publish queue and device confirmation, which would be the actual solution to supply chain attacks.

6. Package deprecation in the UI has no way to specify the deprecation reason. That's only possible via the CLI. Deprecation reason cannot be added after the fact for whatever reason (pun intended). Extremely easy to mess up.

7. The entirety of the "Code" tab contents isn't stored in history. No way to go back/forth between the files. 8. Violating Trusted Publishing surfaces as 404 (ditto on the bad errors, but I had to talk about this). 9. Publishing experience in general is clunky and odd.

The "Code" tab view. I regularly have to switch to the Yarn website when trying to look at a package's code, because: - it breaks the browser back button - it doesn't allow linking to code - it doesn't support readily switching lib versions

I want the whole thing to be nuked from orbit. But now that I got that out of the way: - I wish version data could be grouped by canary vs stable etc - publishing wasn’t practically identical to carrying the one ring to rule them all to Mount Doom

I am still frustrated about them: - Enforcing two factor auth - Disallowing OTP - Not even having atleast something like an Email based two-factor for publishing packages Feels like NPM is trying to solve security issues by just artificially making it hard to publish packages for everyone.

This may sound ambitious, but… Would love the act of upgrading a library to also upgrade the code base — or at least the option to. Bundle code mods with library updates, and have “upgrade” apply them automatically. 🚀

- as many have said, can't link to code, let alone a line (range) in a file - link to github doesn't respect `repository.directory` from pkg; big waste of time for monorepos - readme doesn't render GitHub Markdown fully - doesn't show pkg's full install size, # of deps, sec warnings...

- No dark mode - No way to link to code in code tab - No way to use OIDC for a first package release - The TS badge doesn’t support modern module resolution - No peer dependencies in the dependencies tab - No distinction between my lifecycle hooks and that of dependencies in CLI

npmjs.comnpmjs.com

Another thing that would be great is some mechanism similar to bundlejs.com, as the complete package size is very often completely wrong. Then again, this is a can of worms that is most likely unsolvable, especially for packages with granular, isomorphic, or dynamically loadable resources.

bundlejs.combundlejs - Online bundler + npm package size checkerA quick and easy way to bundle, minify, and compress (gzip and brotli) your ts, js, jsx and npm projects all online, with the bundle file size.

Another one: If a package homepage is a link to the repository, then it’s just silly to render both a link to the repository and to the homepage.