npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@nimmervoll/kit

v0.1.0

Published

The versioned half of the nimmervoll registry: utilities with an API, published per registry domain under @nimmervoll/kit/<domain>/<item>.

Readme

@nimmervoll/kit

The versioned half of registry.nimmervoll.work.

Most of that registry is copy-in: shadcn add writes a file into your tree and it is yours from then on, to edit and to keep. That is the right model for a CI workflow or a Biome preset — config you are going to change anyway.

It is the wrong model for the handful of items that are not template text but a library: they have an API you bind to, and in one case two files that have to agree with each other. Those are published here as well, so you can take a version you upgrade instead of a copy that ages in place.

Install

bun add @nimmervoll/kit

Zero runtime dependencies — the published modules touch nothing but node:crypto.

Import paths

Subpaths mirror the registry: @nimmervoll/kit/<domain>/<item>.

| Import | Registry item | | --- | --- | | @nimmervoll/kit/aws/access-gate | @nimmervoll/access-gate | | @nimmervoll/kit/tooling/access-gate-e2e | @nimmervoll/access-gate-e2e |

There is deliberately no root export. A barrel would make one import of the Playwright helper pull the CloudFront builder in behind it, and the subpaths are the grouping the items already have.

Which channel do I want?

Take the package when you want the gate to stay current — a fix to the edge function arrives with a version bump, and the e2e helper is guaranteed to derive its cookie through the same code the edge does, because it imports it.

// sst.config.ts
import { createAccessGateInjection } from '@nimmervoll/kit/aws/access-gate'

// playwright.config.ts
import { createAccessGateStorageState } from '@nimmervoll/kit/tooling/access-gate-e2e'

Take the registry when you want the source in your repo to read and change — a gate whose login page you are restyling, or an infra module you are about to fork anyway:

bunx shadcn@latest add @nimmervoll/access-gate

Both ship the same code. The package is generated from the registry's own files, and CI fails when the two disagree, so the choice is about how you want to receive updates and nothing else.

One difference worth knowing: installed from the registry, the e2e helper finds the gate through a relative path into infra/lib/utils/, which you adjust by hand if your suite lives somewhere else. Imported from the package, there is no path to adjust.

Note for the cookie mode

access.html is a file, not a module, so it is not in this package — the cookie mode needs it served at your site root. Either add the registry item alongside (bunx shadcn@latest add @nimmervoll/access-gate) and keep only that page, or use basic mode, which needs no page at all.

Source

Every module here is generated from domains/<domain>/files/ in the registry repo. Fixes go to the domain file; this package is regenerated from it.