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 🙏

© 2025 – Pkg Stats / Ryan Hefner

patchsix

v6.11.1

Published

fork of patchbay at v6

Readme

patchbay

Prototype of a pluggable patchwork.

patchbay is a secure-scuttlebutt client interface that is fully compatible with patchwork.

I started patchbay to experiment with a different internal architecture based on depject. The goal was to make it easier to develop new features, and enable or disable features. This has so far been quite successful!

This makes in very easy to create say, a renderer for a new message type, or switch to a different method for choosing user names.

Setup

Libsodium has some build dependencies. On *ubuntu systems the following might help:

sudo apt-get install m4 libtool eclipse-cdt-autotools

Install Scuttlebot (your gossip server)

npm install scuttlebot@latest -g

# make sure you have [email protected]
npm ls secure-scuttlebutt -g

sbot server
# if you are already running patchwork, that also works.
# (must have at least >= 2.8)

# then in another tab (these must be separate commands)
sbot plugins.install ssb-links
sbot plugins.install ssb-query
sbot plugins.install ssb-ws
sbot plugins.install ssb-fulltext # for faster searches (optional)

# restart sbot server (go back to previous tab and kill it)

Restart your sbot, then (optionally) use an invite code. This will give you your first friend, from which point you can find others:

 sbot invite.accept LONG_INVITE_CODE_MAYBE_IN_QUOTES

Install Patchbay (an interface for the your scuttlebutt database)

git clone https://github.com/ssbc/patchbay.git
cd patchbay
npm install

Running the desktop app

From inside the patchbay repo folder,

npm run rebuild
npm start

Running in the browser

Make sure scuttlebot is allowing private connections. Stop any running sbot server, restart it with the --allowPrivate option and create a new modern invite:

sbot server --allowPrivate
sbot invite.create --modern

From inside the patchbay repo folder, run npm run lite.

Lastly open build/index.html in a browser and append the invite created above using: index.html#ws://localhost:8989....

How to add a feature

To add a new message type, add add a js to ./modules/ that exports a function named message_content (it should return an HTML element). To add a new tab, export a function named screen_view (returns an html element).

To add a new detail, that appears above a message, export a function named message_meta.

See the code for more examples.

Module graph

patchbay uses depject to manage it's modules. Here is a graph of the current connections between them (round shows module, square shows api, arrow direction points from user to provider).

module graph

License

MIT