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

underwire

v0.0.7

Published

Dependency tracking system

Readme

Underwire v0.0.3

A minimal dependency graph manager and viewer built with Hapi and React.

Graph View

What?

Underwire is a dependency graph viewer and manager system. It provides realtime updates to connected clients via Websockets and allows for systems to publish their connections dynamically.

What this really means is that with Underwire and a little bit of code you can do some cool things like pull outbound connections from your application or service logs and visualize what your complete SOA looks like.

You could also parse your code into an AST, normalize the AST and push it to Underwire to visualize the code flow and reuse patterns.

Really the possibilities are endless.

Why?

Many years ago in a land far far away there was a piece of spaghetti that a company called a SOA. No one knew what called what, no one knew who did what, and no one could prove just how bad overall the setup was.

An idea came about to take the configuration files from each service and review them for what called what.

This proved time consuming and tedious.

A crazy developer sat in a corner and thought that manual parsing was the worst way to do this. So he built a simple concept that parsed the files looking for things that resembled connection strings between services. Then built a simple UI on top of this and thus a system was born.

The company created a team to build and manage this concept into a product. Life was good. Then things changed, the team was disbanded, and the product died. No matter how much everyone begged it was kept internal and closed source.

Fast forward many many years later. Another need is noticed for a system that provides simple insights into the dependencies of systems. This time the crazy developer decides to build the system on his own time, and thus Underwire is born.

Install

npm install -g underwire

or

Clone the repo, then npm install from the source folder.

Usage

Start the server

npm start

Navigate to http://localhost:8080/

Then either use the UI to add nodes and edges, or use the fake data script to create some sample data for you to play with.

scripts/fakedata.sh

Debug

Start the server in development module

npm run dev

http://localhost:8080/

Make changes, see them on your screen.

API

To view the API documentation; install Underwire, start the application and then navigate to http://localhost:8080/documentation