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

@leconome/cli

v0.5.1

Published

Publish static sites to IPFS, and join an Econome cluster as a follower.

Readme

@leconome/cli

One command to join the Econome IPFS cluster as a follower.

npx -y @leconome/cli join <join-url-from-dashboard>

Requires Docker. Manage the follower with:

econome status   # is it running / replicating, pin count
econome logs -f  # tail follower logs
econome stop     # stop (keeps data)
econome update   # pull newer images and restart

The join URL comes from the dashboard's Onboarding page (one per minted token). The CLI fetches the cluster config, starts a Kubo + ipfs-cluster follower under ~/.econome, and registers the new peer with the dashboard.

Publishing a site

Publish a directory to IPFS and get a URL back:

econome auth login                  # once
econome publish ./dist --name mon-site

The directory is uploaded into a mutable folder. Every publish returns a CID pinning that exact version, and, once the folder has an IPNS key, a stable address that follows subsequent publishes.

econome publish ./dist --dry-run    # list what would go, upload nothing
econome publish ./dist --yes        # skip the confirmation
econome publish ./dist --tags web   # replication tags

--dry-run needs no credentials: checking what you are about to publish is the first thing you want to do.

Authentication

econome auth login      # prompts for a key, checks it, stores it 0600
econome auth status     # where the key comes from; never prints it
econome auth logout     # removes the stored key

The key is stored in ~/.econome/creds.json, separate from the follower config that join rewrites. login verifies the key against the API before storing it, so a mistyped key fails immediately rather than at your first publish.

ECONOME_API_KEY overrides anything stored, which is what you want in CI. auth status says so when both are present.

Before you publish

Two checks run automatically, because they catch the mistakes that actually happen:

  • No index.html at the root. A gateway will render a file listing rather than a site, usually because the project root was published instead of the build output.
  • Root-absolute asset paths. Served from /ipfs/<cid>/, href="/app.css" resolves to the gateway root and 404s. Build with relative paths, or serve the folder from a domain root through its IPNS name.

.git, node_modules, .env and OS noise are never uploaded.

Configuration

| Variable | Default | Purpose | | --- | --- | --- | | ECONOME_API_KEY | — | Required to publish | | ECONOME_API_URL | https://ipfs-api.econome.studio | API origin | | ECONOME_GATEWAY_URL | https://ipfs-gateway.econome.studio | Used for printed URLs |

The environment wins over the stored config on purpose, so a run against another cluster never depends on what happens to be in ~/.econome. The API key is not accepted as a flag: it would end up in shell history and CI logs.

Published content is public and cannot be reliably unpublished. Anything already fetched or pinned elsewhere survives an unpin.

Built by

Made by L'Économe, a web and software studio in Toulouse building on open technologies and self-hosted infrastructure.

We wrote an introduction to content addressing, which is what this cluster stores things with: Qu'est-ce qu'IPFS ?