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

@nan0web/comment

v3.1.1

Published

Universal comment & feedback overlay for QA auditing and page annotation. Activate via URL param, hotkey, or nav toggle.

Downloads

44

Readme

@nan0web/comment

Universal, zero-hardcode, zero-logic comment & feedback overlay. Perfect for QA auditing, UI feedback, and contextual page annotations.

Installation

How to install with npm?

npm install @nan0web/comment

Architecture

Designed strictly on the OLMUI (One Logic — Many UI) and Architechnomag principles:

1.- Zero-Logic UI: The React/Web adapter only handles DOM nodes. Validation rules and flows live in CommentModel.

  • Zero-Hardcode & i18n: All translation labels are yielded by the Model, the UI adapters never import static languages.
  • Model-as-Schema: Fully declarative definition of the feedback process.
  • URL Scoped: Comments inherently bind to the current page path, cleanly separating localized variations (e.g., /uk/ vs /en/).

Usage

Basic Implementation

Wrap any simple persistence mechanism (like localStorage or IndexedDB) into a basic DB interface { save, loadAll, remove, clear } and pass it to the adapter.

How to initialize and start the comment overlay?

import { WebCommentAdapter } from '@nan0web/comment'
// 1. Create a dummy DB for storing comments
class DemoDB {
	async save(comment) { console.info('Saved:', comment.text) }
	async loadAll() { return [] }
	async clear() {}
	async remove() {}
}
// 2. Initialize the adapter
const adapter = new WebCommentAdapter({
	db: new DemoDB(),
	t: (key) => key // simple mock translator
})
// 3. Start the flow programmatically
// adapter.start().then(result => console.info(result.action))

Comments Dashboard & Import/Export

The adapter organically brings a Comments Dashboard panel containing:

  • Viewing existing comments bound to the current URL.
  • Highlighting exact elements on the page (by CSS Selector) using Crosshairs.
  • Real-time bulk JSON Import/Export right out of the box.

How to open the Comments Dashboard?

import { WebCommentAdapter } from '@nan0web/comment'
const adapter = new WebCommentAdapter({
	db: { async loadAll() { return [] }, async save() {}, async clear() {}, async remove() {} },
	t: (k) => k
})
// Programmatically open the List Panel
// adapter.showCommentList()

Core Logic (CommentModel)

Advanced use cases can directly interact with the CommentModel generator to bypass the Web adapter (e.g. for CLI tooling or Unit Tests).

How to use CommentModel generator?

import { CommentModel } from '@nan0web/comment/domain'
const model = new CommentModel()

License

How to license? - ISC LICENSE file.