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

@hiremate/react

v1.0.2

Published

React & Next.js coding rules for Claude Code and Cursor

Readme

@hiremate/react

React & Next.js coding rules for Claude Code and Cursor. Installs as a global system prompt so AI always follows your team's patterns, plus a /review command to check new changes.

What it does

  • Always-on rules — Claude Code reads them automatically in every session (like a system prompt)
  • /review command — checks your current git diff against the rules, flags violations by file and line
  • Cursor support — same rules as .mdc file for Cursor

Install

npx @hiremate/react init

This writes to:

  • ~/.claude/CLAUDE.md — global rules for Claude Code (merged, doesn't overwrite your existing content)
  • ~/.claude/commands/review.md — the /review slash command
  • .cursor/rules/react-rules.mdc — Cursor rules in the current project
  • Cursor global settings (settings.json) — rules apply to all Cursor projects automatically

Update

When the team pushes new rules:

npx @hiremate/react@latest init

The script finds the existing block in your CLAUDE.md by markers and replaces only it — your other CLAUDE.md content stays untouched.

Uninstall

npx @hiremate/react uninstall

Removes the rules block from ~/.claude/CLAUDE.md and deletes ~/.claude/commands/review.md.

Usage

Automatic (always-on)

After init, Claude Code and Cursor follow the rules automatically when writing or editing code. No extra steps.

/review command (Claude Code)

Run after making changes:

/review

Checks git diff --staged (or git diff HEAD if nothing staged) and outputs violations grouped by file:

## src/components/Modal.tsx
src/components/Modal.tsx:14 — CRITICAL: barrel import, use lucide-react/dist/esm/icons/x
src/components/Modal.tsx:38 — HIGH: aria-label missing on close button

## src/lib/utils.ts
✓ pass

You can also point it at a specific file:

/review src/components/Modal.tsx

What's covered

Always flagged

  • Sequential await where Promise.all is possible
  • Barrel file imports (lucide-react, @mui/material, etc.)
  • any or as any in TypeScript
  • .sort() mutating props or state (use .toSorted())
  • window/document access outside SSR guards

Flagged unless clearly intentional

  • Unnecessary client-side state that could live on the server
  • Missing aria-label on icon-only buttons
  • count && <Component> where count is a number (renders "0")
  • useEffect with object dependency instead of primitive

Suggested

  • State lifted higher than needed
  • Prop drilling more than 2 levels
  • Missing autocomplete on form inputs

Requirements

  • Node.js 18+
  • Claude Code or Cursor