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

critkit

v0.1.2

Published

Design crit with your coding agents — walk your build, crit what's wrong, hand your agent a source-anchored to-do list.

Readme

CritKit

Design crit with your coding agents — walk your build, crit what's wrong, hand your agent a source-anchored to-do list.

CritKit is the design QA step in the agentic coding loop. You build a UI with a coding agent (Claude Code, Cursor), open the running app, and walk it — every time something's off (spacing, a color, a label, an alignment), you crit it: hit a key, click the element, drop a note.

CritKit gathers the session into a single ready-to-paste prompt. Each crit carries its source — the component that rendered the element — plus values harvested from the live DOM, so you barely type. Paste the prompt to your agent; it works through the list top to bottom.

Agent builds → you crit → agent fixes.

Install

npm i -D critkit

CritKit is a standalone, dev-only tool — zero runtime dependencies, no build step, nothing to configure.

Usage

Register CritKit once, on the client, in development only:

"use client"
import { useEffect } from "react"

export function CritKitDev() {
  useEffect(() => {
    void import("critkit").then(({ registerCritKit }) => registerCritKit())
  }, [])
  return null
}

Render it only in development — e.g. in your root layout:

{process.env.NODE_ENV === "development" && <CritKitDev />}

CritKit never loads in a production build — zero production footprint.

The crit session

  • Press C (or click the launcher) to enter crit mode.
  • Hover any element — it highlights. Click to crit it.
  • Type a note, hit . Repeat across the page.
  • Open the list and copy the crit prompt — paste it to your agent.
  • Esc exits crit mode.

How source resolution works

CritKit resolves a clicked element to the component that rendered it by reading React's dev-mode fiber data — no build plugin, no instrumentation. Because that data only exists in a development build, CritKit is dev-only by nature.

Requirements

React 19, on the client.

License

MIT © Kevin Tenn