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

@0xx0lostcause0xx0/ncc-manager

v0.7.0

Published

Web app for managing NCC drafts, publishing, and verification.

Readme

NCC Manager

Web app for drafting, publishing, and verifying NCC, NSR, and endorsement events that ships as a CLI + Express server.

Install & run

Run without installing globally

npx ncc-manager

Since the package exposes a bin entry for ncc-manager you can also run npx @0xx0lostcause0xx0/ncc-manager if you prefer the scoped reference. The CLI builds dist/ (if needed), starts the Express server, and opens your browser automatically. Pass --no-open to skip launching the browser or --host/--port to override the defaults (127.0.0.1 and 5179).

Global install

npm install -g @0xx0lostcause0xx0/ncc-manager
ncc-manager

The globally installed CLI also respects --host, --port, and --no-open:

ncc-manager --host 0.0.0.0 --port 4322 --no-open

Documentation

Development

npm ci
npm run build
npm start

npm start runs NODE_ENV=production node server.js, so it is safe to point browsers at the published UI (http://localhost:5179 by default).

Use npm run dev:all for the Vite dev server + Express API combo during active development.

Configuration

  • NCC_RELAYS: comma-separated list of relays used by the server default response.
  • PORT: server HTTP port (default 5179). Use the CLI --port flag instead when running via ncc-manager.
  • HOST: host to bind. Default 127.0.0.1; override via the CLI --host.
  • NCC_SERVER_STORE: set to 0 to turn off server-side storage.
  • NCC_MANAGER_DB: full path to the SQLite file if you need to place it somewhere else (default is per-user storage).

Supporting documents

You can publish supporting document events (kind: 30053) via the Supporting Docs view in the sidebar. At minimum you must supply:

  • Document ID (d): unique per author (no enforced prefix).
  • For NCC (for): which NCC this document supports; it must start with ncc-.
  • Title and Published at: the document metadata.

Additional optional tags are available (for_event, type, language, topics, authors, license) to mirror Appendix E. The editor validates the required relationships before allowing publication.

Caching & offline mode

  • NCC documents fetched from relays are cached in localStorage per relay list for five minutes (TTL). The refresh button forces a new fetch, but when the cache is fresh or you’re offline the cached data is reused so you don’t hit the relays unnecessarily.
  • The UI listens for online/offline events and informs you via toasts; NCC/endorsement events fetched from relays are cached in localStorage for five minutes per relay set, so you still see data when temporarily offline.
  • Drafts are persisted via the server’s SQLite store whenever it is reachable, and a fallback in-memory cache keeps the most recent drafts available even while offline. Publishing while offline will queue the request but eventually retries the relay publish attempts once connectivity returns.

Database location

By default the server stores drafts at the OS-specific data path provided by env-paths, ensuring writable locations even for global installs. For example:

  • Linux: ~/.config/ncc-manager/ncc_manager.sqlite
  • macOS: ~/Library/Application Support/ncc-manager/ncc_manager.sqlite
  • Windows: %APPDATA%\\ncc-manager\\ncc_manager.sqlite

Set NCC_MANAGER_DB to a custom full path if you need to colocate the database elsewhere (e.g., on a shared drive).

Testing & packaging

  • npm run pack:test: builds the UI, runs npm pack, installs the generated tarball globally, and verifies ncc-manager --no-open starts cleanly. It does not automatically uninstall anything.
  • npm run build: compile the Vite app into dist/.

Publishing

  1. npm run build (ensures dist/ exists for publishing).
  2. npm run pack:test to sanity-check the packed package.
  3. npm publish --access public (or via your CI) once the package is ready.

The package publishes dist/, server.js, src/, bin/, README.md, and LICENSE thanks to the files entry in package.json. The prepublishOnly hook keeps dist/ up to date before every publish.