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

userslibrary

v0.1.1

Published

A lightweight React component library to search and display GitHub users, powered by the public GitHub API. Comes with a ready-to-use component and a standalone hook, so you can use as much or as little as you need.

Readme

userslibrary

A lightweight React component library to search and display GitHub users, powered by the public GitHub API. Comes with a ready-to-use component and a standalone hook, so you can use as much or as little as you need.

Installation

npm install userslibrary

react and react-dom (v17 or higher) are required as peer dependencies — install them if your project doesn't already have them.

Usage

Drop-in component

import { GithubUserSearch } from 'userslibrary'

function App() {
  return <GithubUserSearch />
}

That's it — no extra CSS import needed, styles are bundled in automatically. Renders a search input and a live, debounced list of matching GitHub users (avatar + username), with built-in loading, error, and empty states.

Just the data (bring your own UI)

If you'd rather build your own UI and just need the fetching logic:

import { useFetchUsers } from 'userslibrary'

function MyCustomList() {
  const [query, setQuery] = useState('')
  const { data, loading, error } = useFetchUsers(query)

  return (
    <div>
      <input value={query} onChange={(e) => setQuery(e.target.value)} />
      {loading && <p>Loading...</p>}
      {error && <p>{error}</p>}
      {data.map((user) => (
        <div key={user.id}>{user.login}</div>
      ))}
    </div>
  )
}

API

<GithubUserSearch />

A fully self-contained component — no props required. Internally uses useFetchUsers and renders:

  • A search input (debounced, 400ms)
  • A default list of users when the search is empty
  • Live search results from GitHub when a query is typed
  • Loading, error, and "no results" states

useFetchUsers(query: string)

Returns:

| Field | Type | Description | |-----------|----------------|-----------------------------------------------| | data | GithubUser[] | List of matching users (or default list if query is empty) | | loading | boolean | true while a request is in flight | | error | string | Error message, empty string if none |

Automatically debounces requests as query changes — no need to debounce it yourself before passing it in.

GithubUser type

interface GithubUser {
  id: number
  login: string
  avatar_url: string
  html_url: string
  url: string
  type: string
  site_admin: boolean
  score?: number  // present only on search results
}

Notes

  • Uses GitHub's public REST API — unauthenticated requests are rate-limited to 60/hour per IP. Fine for demos and light usage; not recommended for high-traffic production apps without adding your own auth token.
  • Search is debounced by 400ms to avoid excessive API calls while typing.

License

MIT