Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
42eae41
fix: dependencies complex version link
alex-key Feb 16, 2026
af97cdf
fix: remove wrong nested property usage in dependencies
alex-key Feb 16, 2026
55396f2
fix: change quantifier in regexp for last version match
alex-key Feb 16, 2026
40a79af
fix: dependencies complex version link
alex-key Feb 16, 2026
a16a9da
fix: remove wrong nested property usage in dependencies
alex-key Feb 16, 2026
541e7d9
fix: change quantifier in regexp for last version match
alex-key Feb 16, 2026
6c3c57a
Merge branch 'fix-deps-version-union-links' of https://github.com/ale…
alex-key Feb 22, 2026
734423c
Merge branch 'main' of https://github.com/alex-key/npmx.dev into fix-…
alex-key Feb 22, 2026
03de67e
fix: improve comment in versions.ts util
alex-key Feb 22, 2026
bfc50aa
fix: add style to allowQuery in badge API route (#1576)
wojtekmaj Feb 22, 2026
8c44ddc
feat: add animation toggle for sparkline chart (#1578)
graphieros Feb 22, 2026
8ccff3c
perf: lazily load package documentation (#1580)
43081j Feb 22, 2026
535feed
fix: add missing padding (#1589)
graphieros Feb 22, 2026
2a5a714
fix(ui): noPrefetch and prefetch warnings (#1587)
MatteoGabriele Feb 22, 2026
adcc466
fix(ui): escape special characters in description (#1582)
radosvet93 Feb 22, 2026
634ad20
fix: correct search condition for routing (#1574)
alexdln Feb 22, 2026
a70083a
fix: fix fallback not triggered for 0 measuredWidth (#1584)
wojtekmaj Feb 22, 2026
0ecb29a
feat(i18n): update Tamil (ta-IN) translations (#1513)
Meganathanrbm Feb 22, 2026
27f5c13
chore(deps): remove things from lockfile that reference only each oth…
gameroman Feb 22, 2026
1009dbd
fix: hard-code scroll margin per-page to account for fixed header siz…
WilcoSp Feb 22, 2026
996fdc4
feat: add TanStack Start to framework list (#1523)
farisaziz12 Feb 22, 2026
f89d9d5
feat(i18n): add missing German translation (#1577)
mkriegeskorte Feb 22, 2026
d2b07df
fix: apply narrower max width to featured frameworks (#1591)
graphieros Feb 22, 2026
70287cf
fix: update tanstack package name
danielroe Feb 22, 2026
03f1f17
chore(deps): lock file maintenance (#1593)
renovate[bot] Feb 23, 2026
63f1b45
fix: add workaround for safari + `position: relative` on `<tr>` (#1579)
RYGRIT Feb 23, 2026
67cfd45
fix: add `clip-path` prevents the clickable area of ​​the last link f…
RYGRIT Feb 23, 2026
070a7f2
test: add more fixtures for api responses in e2e testing (#1599)
danielroe Feb 23, 2026
225033d
chore(deps): update devdependency oxlint to v1.50.0 (#1600)
renovate[bot] Feb 23, 2026
a969171
chore: remove unnecessary @public annotations and guidelines (#1595)
serhalp Feb 23, 2026
3b2ab79
chore(deps): update all non-major dependencies (#1500)
renovate[bot] Feb 23, 2026
ab2087a
feat(ui): add versions modal permalink (#1598)
MatteoGabriele Feb 23, 2026
bb5a9f0
chore(deps): update all non-major dependencies to v0.0.0-b1666489.202…
renovate[bot] Feb 23, 2026
ba298fe
fix: preserve backtick spans in markdown (#1608)
vmrjnvc Feb 23, 2026
51ed525
feat: oauth server side and confidential client (#1366)
fatfingers23 Feb 23, 2026
4246209
feat(i18n): add German translations for trend animations (#1605)
tomvoet Feb 23, 2026
ff8e1a9
feat: add more playground providers (#1607)
olivermrose Feb 23, 2026
5b0174f
feat: rewrite npmjs.org links (#1573)
shamilkotta Feb 23, 2026
ce3172d
docs: add docs for style query for badges (#1571)
btea Feb 23, 2026
916319b
ci: add examples to PR title validatior (#1611)
farisaziz12 Feb 23, 2026
53da7a2
fix: tanstack start package (#1610)
farisaziz12 Feb 23, 2026
267b070
fix: normalize user and org names to lowercase in search and routing …
yshashi Feb 23, 2026
8778be6
chore: add generic type annotations to chart components (#1615)
graphieros Feb 24, 2026
abfd81e
fix: address CLS in downloads modal (#1619)
graphieros Feb 24, 2026
cca1ac2
chore(deps): update dependency vue to v3.5.29 (#1621)
renovate[bot] Feb 24, 2026
c0f0f27
fix: update isr configuration for package pages (#1604)
alexdln Feb 24, 2026
ebda1ac
fix: increase chart right padding (#1620)
graphieros Feb 24, 2026
2b7ee53
feat: improve scroll-to-top behavior (#1453)
RYGRIT Feb 24, 2026
52ad006
docs: add contributing section about cache busting in dev (#1617)
serhalp Feb 24, 2026
619fac1
feat: copy compare table as markdown (#1533)
mikouaji Feb 24, 2026
ca3e930
feat: add storybook playground link (#1624)
yannbf Feb 24, 2026
0f97ad5
fix(i18n): add missing French UI strings + update some others (#1633)
ArmandPhilippot Feb 24, 2026
1ba0f5d
chore: bump vue-data-ui from 3.15.6 to 3.15.7 (#1632)
graphieros Feb 25, 2026
e72cf5b
fix: blank gap on collapsed weekly downloads (#1639)
RYGRIT Feb 25, 2026
e0b8e44
feat(i18n): add missing German translations (#1628)
tomvoet Feb 25, 2026
155c6c3
perf: improve caching of packuments (#1642)
danielroe Feb 25, 2026
e917331
feat: generate alt text in charts (#1644)
graphieros Feb 25, 2026
c8f0218
feat: add new sections to about page (#1630)
alexdln Feb 25, 2026
a982bf1
fix(ui): adjust sidebar versions spacing (#1641)
MatteoGabriele Feb 25, 2026
823d214
feat: add error handling for FetchError (#1634)
vmrjnvc Feb 25, 2026
dcbb00f
perf: cache rendered payloads (#1643)
danielroe Feb 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/autofix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
Expand All @@ -47,7 +47,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
Expand All @@ -69,7 +69,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
Expand Down Expand Up @@ -97,7 +97,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
Expand Down Expand Up @@ -133,10 +133,10 @@ jobs:
name: 🖥️ Browser tests
runs-on: ubuntu-24.04-arm
container:
image: mcr.microsoft.com/playwright:v1.58.0-noble
image: mcr.microsoft.com/playwright:v1.58.2-noble

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
Expand Down Expand Up @@ -166,7 +166,7 @@ jobs:
mode: [dark, light]

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
Expand Down Expand Up @@ -194,7 +194,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
Expand All @@ -219,7 +219,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lunaria.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
# Necessary for Lunaria to work properly
# Makes the action clone the entire git history
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mirror-tangled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/provenance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
name: 🔒 Check provenance downgrades
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/semantic-pull-requests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,10 @@ jobs:
The subject "{subject}" found in the pull request title "{title}"
didn't match the configured pattern. Please ensure that the subject
doesn't start with an uppercase character.

Examples:
✅ chore(ui): fix button spacing
✅ docs: update README
❌ chore(ui): Fix button spacing
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41 changes: 29 additions & 12 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ This focus helps guide our project decisions as a community and what we choose t
- [Setup](#setup)
- [Development workflow](#development-workflow)
- [Available commands](#available-commands)
- [Clearing caches during development](#clearing-caches-during-development)
- [Project structure](#project-structure)
- [Local connector CLI](#local-connector-cli)
- [Mock connector (for local development)](#mock-connector-for-local-development)
Expand Down Expand Up @@ -124,6 +125,34 @@ pnpm test:a11y # Lighthouse accessibility audits
pnpm test:perf # Lighthouse performance audits (CLS)
```

### Clearing caches during development

Nitro persists `defineCachedEventHandler` results to disk at `.nuxt/cache/nitro/`. This cache **survives dev server restarts**. If you're iterating on a cached API route and want fresh results, delete the relevant cache directory:

```bash
# Clear all Nitro handler caches
rm -rf .nuxt/cache/nitro/handlers/

# Clear a specific handler cache (e.g. picks)
rm -rf .nuxt/cache/nitro/handlers/npmx-picks/
```

Alternatively, you can bypass the cache entirely in development by adding `shouldBypassCache: () => import.meta.dev` to your `defineCachedEventHandler` options:

```ts
export default defineCachedEventHandler(
async event => {
// ...
},
{
maxAge: 60 * 5,
shouldBypassCache: () => import.meta.dev,
},
)
```

The `.cache/` directory is a separate storage mount used for fetch-cache and atproto data.

### Project structure

```
Expand Down Expand Up @@ -289,18 +318,6 @@ import { hasProtocol } from 'ufo'
| Constants | SCREAMING_SNAKE_CASE | `NPM_REGISTRY`, `ALLOWED_TAGS` |
| Types/Interfaces | PascalCase | `NpmSearchResponse` |

> [!TIP]
> Exports in `app/composables/`, `app/utils/`, and `server/utils/` are auto-imported by Nuxt. To prevent [knip](https://knip.dev/) from flagging them as unused, add a `@public` JSDoc annotation:
>
> ```typescript
> /**
> * @public
> */
> export function myAutoImportedFunction() {
> // ...
> }
> ```

### Vue components

- Use Composition API with `<script setup lang="ts">`
Expand Down
22 changes: 22 additions & 0 deletions app/assets/logos/oss-partners/algolia-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 22 additions & 0 deletions app/assets/logos/oss-partners/algolia.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
76 changes: 76 additions & 0 deletions app/assets/logos/oss-partners/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import LogoNuxt from '~/assets/logos/oss-partners/nuxt.svg'
import LogoOpenSourcePledge from '~/assets/logos/oss-partners/open-source-pledge.svg'
import LogoOpenSourcePledgeLight from '~/assets/logos/oss-partners/open-source-pledge-light.svg'
import LogoOxC from '~/assets/logos/oss-partners/oxc.svg'
import LogoRolldown from '~/assets/logos/oss-partners/rolldown.svg'
import LogoStorybook from '~/assets/logos/oss-partners/storybook.svg'
import LogoVite from '~/assets/logos/oss-partners/vite.svg'
import LogoVitest from '~/assets/logos/oss-partners/vitest.svg'
import LogoVue from '~/assets/logos/oss-partners/vue.svg'
import LogoAlgolia from '~/assets/logos/oss-partners/algolia.svg'
import LogoAlgoliaLight from '~/assets/logos/oss-partners/algolia-light.svg'

// The list is used on the about page. To add, simply upload the logos nearby and add an entry here. Prefer SVGs.
// For logo src, specify a string or object with the light and dark theme variants.
// Prefer original assets from partner sites to keep their brand identity.
//
// If there are no original assets and the logo is not universal, you can add only the dark theme variant
// and specify 'auto' for the light one - this will grayscale the logo and invert it in light mode.
export const OSS_PARTNERS = [
{
name: 'Open Source Pledge',
logo: {
dark: LogoOpenSourcePledge,
light: LogoOpenSourcePledgeLight,
},
url: 'https://opensourcepledge.com/',
},
{
name: 'Void Zero',
items: [
{
name: 'Vite',
logo: LogoVite,
url: 'https://vite.dev/',
},
{
name: 'OxC',
logo: LogoOxC,
url: 'https://oxc.rs/',
},
{
name: 'Vitest',
logo: LogoVitest,
url: 'https://vitest.dev/',
},
{
name: 'Rolldown',
logo: LogoRolldown,
url: 'https://rolldown.rs/',
},
],
},
{
name: 'Nuxt',
logo: LogoNuxt,
url: 'https://nuxt.com/',
},
{
name: 'Vue',
logo: LogoVue,
url: 'https://vuejs.org/',
},
{
name: 'Algolia',
logo: {
dark: LogoAlgolia,
light: LogoAlgoliaLight,
},
url: 'https://algolia.com/',
},
{
name: 'Storybook',
logo: LogoStorybook,
url: 'https://storybook.js.org/',
},
]
10 changes: 10 additions & 0 deletions app/assets/logos/oss-partners/nuxt.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions app/assets/logos/oss-partners/open-source-pledge-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions app/assets/logos/oss-partners/open-source-pledge.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading