Skip to content

Commit 586602d

Browse files
committed
docs: update features + add comparison with npmjs.com
1 parent 127b094 commit 586602d

2 files changed

Lines changed: 105 additions & 72 deletions

File tree

CONTRIBUTING.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@ tests/ # Playwright E2E tests
9292
> [!TIP]
9393
> For more about the meaning of these directories, check out the docs on the [Nuxt directory structure](https://nuxt.com/docs/4.x/directory-structure).
9494
95+
### Local connector CLI
96+
97+
The `cli/` workspace contains a local connector that enables authenticated npm operations from the web UI. It runs on your machine and uses your existing npm credentials.
98+
99+
```bash
100+
# run the connector from the root of the repository
101+
pnpm npmx-connector
102+
```
103+
104+
The connector will check your npm authentication, generate a connection token, and listen for requests from npmx.dev.
105+
95106
## Code style
96107

97108
### Typescript

README.md

Lines changed: 94 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -12,33 +12,98 @@
1212

1313
## Vision
1414

15-
The aim of [npmx.dev](https://npmx.dev) is to provide a better browser for the npm registry - fast, accessible, and designed for power users.
15+
The aim of [npmx.dev](https://npmx.dev) is to provide a better browser for the npm registry – fast, accessible, and designed for power users. We don't aim to replace the [npmjs.com](https://www.npmjs.com/) registry, just provide a better UI and DX.
1616

17-
- **Speed first** - Insanely fast searching, filtering, and navigation.
18-
- **URL compatible** - Replace `npmjs.com` with `xnpmjs.com` or `npmx.dev` in any URL and it just works.
19-
- **Provenance aware** - See at a glance which packages have verified build provenance.
17+
- **Speed first** – Layout shift, flakiness, slowness is The Worst. Fast searching, filtering, and navigation.
18+
- **URL compatible** – Replace `npmjs.com` with `xnpmjs.com` or `npmx.dev` in any URL and it just works.
19+
- **Simplicity** – No noise, cluttered display, or confusing UI. If in doubt: choose simplicity.
2020

2121
## Features
2222

23-
- **Dark mode by default** - easier on the eyes
24-
- **Package browsing** - fast search, package details, READMEs, versions, dependencies
25-
- **User profiles** - view any npm user's public packages at `/~username`
26-
- **Organization pages** - browse org packages at `/org/orgname`
27-
- **Provenance indicators** - verified build indicators for packages with npm provenance
28-
- **Admin features** - org/team management, package access controls via local connector (coming soon)
29-
30-
### URL compatibility
31-
32-
npmx.dev supports npm permalink patterns:
33-
34-
| Pattern | Example |
35-
| ----------------------------- | -------------------------------------------------------------- |
36-
| `/package/<name>` | [`/package/nuxt`](https://npmx.dev/package/nuxt) |
37-
| `/package/@scope/name` | [`/package/@nuxt/kit`](https://npmx.dev/package/@nuxt/kit) |
38-
| `/package/<name>/v/<version>` | [`/package/vue/v/3.4.0`](https://npmx.dev/package/vue/v/3.4.0) |
39-
| `/search?q=<query>` | [`/search?q=vue`](https://npmx.dev/search?q=vue) |
40-
| `/~<username>` | [`/~sindresorhus`](https://npmx.dev/~sindresorhus) |
41-
| `/org/<name>` | [`/org/nuxt`](https://npmx.dev/org/nuxt) |
23+
### Package browsing
24+
25+
- **Dark mode by default** &ndash; easier on the eyes
26+
- **Fast search** &ndash; quick package search with instant results
27+
- **Package details** &ndash; READMEs, versions, dependencies, and metadata
28+
- **Code viewer** &ndash; browse package source code with syntax highlighting and permalink to specific lines
29+
- **Provenance indicators** &ndash; verified build badges for packages with npm provenance
30+
- **JSR availability** &ndash; see if scoped packages are also available on JSR
31+
- **Package badges** &ndash; module format (ESM/CJS/dual), TypeScript types, and engine constraints
32+
- **Outdated dependency indicators** &ndash; visual cues showing which dependencies are behind
33+
- **Vulnerability warnings** &ndash; security advisories from the OSV database
34+
- **Download statistics** &ndash; weekly download counts with sparkline charts
35+
- **Install size** &ndash; total install size including dependencies
36+
- **Infinite search** &ndash; auto-load additional search pages as you scroll
37+
38+
### User & org pages
39+
40+
- **User profiles** &ndash; view any npm user's public packages at `/~username`
41+
- **Organization pages** &ndash; browse org packages at `/@orgname`
42+
- **Search, filter & sort** &ndash; find packages within user/org lists
43+
- **Infinite scroll** &ndash; paginated lists that load as you scroll
44+
45+
### Comparison with npmjs.com
46+
47+
| Feature | npmjs.com | npmx.dev |
48+
| ------------------------------ | :-------: | :------: |
49+
| Package search |||
50+
| Package details & README |||
51+
| Version history |||
52+
| Dependencies list |||
53+
| User profiles |||
54+
| Organization pages |||
55+
| Provenance indicators |||
56+
| Code browser |||
57+
| Dark mode |||
58+
| Outdated dependency warnings |||
59+
| Module format badges (ESM/CJS) |||
60+
| TypeScript types indicator |||
61+
| Install size calculation |||
62+
| JSR cross-reference |||
63+
| Vulnerability warnings |||
64+
| Download charts |||
65+
| Dependents list || 🚧 |
66+
| Package admin (access/owners) || 🚧 |
67+
| Org/team management || 🚧 |
68+
| 2FA/account settings |||
69+
| Publishing packages |||
70+
71+
🚧 = coming soon
72+
73+
## URL structure
74+
75+
### npm compatibility
76+
77+
npmx.dev supports npm permalinks &ndash; just replace `npmjs.com` with `npmx.dev` or `xnpmjs.com` and it works:
78+
79+
| npm URL | npmx.dev equivalent |
80+
| ------------------------------- | ---------------------------------------------------------------------- |
81+
| `npmjs.com/package/nuxt` | [`npmx.dev/package/nuxt`](https://npmx.dev/package/nuxt) |
82+
| `npmjs.com/package/@nuxt/kit` | [`npmx.dev/package/@nuxt/kit`](https://npmx.dev/package/@nuxt/kit) |
83+
| `npmjs.com/package/vue/v/3.4.0` | [`npmx.dev/package/vue/v/3.4.0`](https://npmx.dev/package/vue/v/3.4.0) |
84+
| `npmjs.com/search?q=vue` | [`npmx.dev/search?q=vue`](https://npmx.dev/search?q=vue) |
85+
| `npmjs.com/~sindresorhus` | [`npmx.dev/~sindresorhus`](https://npmx.dev/~sindresorhus) |
86+
| `npmjs.com/org/nuxt` | [`npmx.dev/org/nuxt`](https://npmx.dev/org/nuxt) |
87+
88+
> [!TIP]
89+
> Want automatic redirects? Try the [npmx-replace browser extension](https://github.com/tylersayshi/npmx-replace-extension).
90+
91+
#### Not yet supported
92+
93+
- `/package/<name>/access` &ndash; package access settings
94+
- `/package/<name>/dependents` &ndash; dependent packages list
95+
- `/settings/*` &ndash; account settings pages
96+
97+
### Simpler URLs
98+
99+
npmx.dev also supports shorter, cleaner URLs:
100+
101+
| Pattern | Example |
102+
| -------------- | -------------------------------------------------- |
103+
| `/<package>` | [`/nuxt`](https://npmx.dev/nuxt) |
104+
| `/@scope/name` | [`/@nuxt/kit`](https://npmx.dev/@nuxt/kit) |
105+
| `/@org` | [`/@nuxt`](https://npmx.dev/@nuxt) |
106+
| `/~username` | [`/~sindresorhus`](https://npmx.dev/~sindresorhus) |
42107

43108
## Tech stack
44109

@@ -48,59 +113,16 @@ npmx.dev supports npm permalink patterns:
48113
- [nuxt-og-image](https://github.com/nuxt-modules/og-image)
49114
- [npm Registry API](https://github.com/npm/registry/blob/main/docs/REGISTRY-API.md)
50115

51-
## Try it out locally
52-
53-
I'd welcome contributions &ndash; please do feel free to poke around and improve things. Here's how you can get going locally.
54-
55-
### Setup
56-
57-
```bash
58-
# install dependencies
59-
corepack enable
60-
pnpm install
61-
62-
# serve in dev mode, with hot reload at localhost:3000
63-
pnpm dev
64-
65-
# build for production
66-
pnpm build
67-
68-
# preview in production mode
69-
pnpm preview
70-
```
71-
72-
### Testing
73-
74-
```bash
75-
# run all tests
76-
pnpm test
77-
78-
# run unit tests
79-
pnpm test:unit
80-
81-
# run e2e tests
82-
pnpm test:browser
83-
84-
# type check
85-
pnpm test:types
86-
```
87-
88-
### Local connector (CLI)
89-
90-
The `cli/` workspace contains a local connector that enables authenticated npm operations from the web UI. It runs on your machine and uses your existing npm credentials.
91-
92-
```bash
93-
# run the connector from the root of the repository
94-
pnpm npmx-connector
95-
```
116+
## Contributing
96117

97-
The connector will check your npm authentication, generate a connection token, and listen for requests from npmx.dev.
118+
I'd welcome contributions &ndash; please do feel free to poke around and improve things. See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines on how to get up and running!
98119

99120
## Related projects
100121

101-
- [JSR](https://jsr.io/) - The open-source package registry for modern JavaScript and TypeScript
102-
- [npm-userscript](https://github.com/bluwy/npm-userscript) - Browser userscript with various improvements and fixes for npmjs.com
103-
- [npm-alt](https://npm.willow.sh/) - An alternative npm package browser
122+
- [npmx-replace-extension](https://github.com/tylersayshi/npmx-replace-extension) &ndash; Browser extension to redirect npmjs.com to npmx.dev
123+
- [JSR](https://jsr.io/) &ndash; The open-source package registry for modern JavaScript and TypeScript
124+
- [npm-userscript](https://github.com/bluwy/npm-userscript) &ndash; Browser userscript with various improvements and fixes for npmjs.com
125+
- [npm-alt](https://npm.willow.sh/) &ndash; An alternative npm package browser
104126

105127
If you're building something cool, let me know! 🙏
106128

0 commit comments

Comments
 (0)