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

everkit-core

v0.6.0

Published

Framework-agnostic, dependency-free utilities shared across React Native / Expo apps: error normalisation, a friendly-message + stable-category mapping, an injectable error handler, and an Expo Go runtime-environment predicate. Pure TypeScript, testable i

Readme

everkit-core

everkit-core decides what our apps do when something goes wrong. It turns technical failures into short, friendly messages for the person using the app, and reports them to us in a way that keeps personal details private

The problem it solves

Things fail in every app. The internet drops, a login expires, a photo is too large. The raw error behind each of these is written for engineers, such as "JWT expired" or "duplicate key value violates unique constraint", and means nothing to the person holding the phone. Without a shared piece, each app would translate these on its own, word them differently, and risk sending private details into its error reports

What an app gets

  • Friendly messages - "JWT expired" becomes "Your session has expired. Please sign in again."
  • Safe error reports - every failure is filed under a short, fixed label such as "network" or "duplicate", never under the person's own words
  • One way to handle a failure - each kind of failure is treated the same way in every app: a cancelled action stays quiet, a known problem gets a friendly message, and only an unexpected failure is passed on to the error tracker
  • A check on usage data - before the app records what someone did, simple values like numbers and plain text pass, and anything odd is dropped
  • Usage data sent in batches - the app collects what people do and sends it a few moments later in one go, so recording never slows the app down. If a send fails, that batch is dropped rather than retried
  • A clear notice in test builds - developers try the apps inside Expo Go, a preview app, where some features such as Sign in with Apple cannot work. The app can tell when it runs there and explain why a feature is missing
  • One shared, tested approach - Tea Companion, Dial It In and Matcha Companion use the same code, so one fix reaches all of them

An everyday analogy

Think of a hotel receptionist. When something breaks behind the scenes, a technician's note arrives at the desk. The receptionist tells the guest in plain words what happened and what to do next, then writes a one-word entry such as "plumbing" in the logbook, without copying the guest's name or room details. everkit-core is that receptionist, and each app hires the same one

For developers: see ARCHITECTURE.md