Vibeleaderboard
Index / tool
Visit pkgfolio.vercel.app
Category
Developer Tools
Rank
No. 2938Tools index

Previous survey · No. 2811 ·

Pricing
Open Source
Type
TOOL
Use case
Data Processing
Interfaces
CLI · Web
GitHub
10 stars
Date

About

Your npm package portfolio — lifetime and recent downloads across every package you maintain, in one command or one page.

What it does

Give it a registry username and it finds every package that account co-owns, pulls usage counts from the public npm statistics service, and sums them into one table. It ships as a terminal program you run through npx, plus a hosted site that shows the same numbers as a card grid with sparklines, adjustable date ranges, and live SVG badges for a README.

Why it's ranked here

A small, honest utility that solves one annoying chore: adding up numbers npm only shows one package at a time. The terminal version has a single runtime dependency, needs no API key or signup, and the site's badge generator was built around how GitHub's image proxy strips styling. The ceiling is scope. There are no tests, and one headline figure is labelled more generously than it is computed.

What's good

The fetching is careful about rate limits: a small pool of concurrent workers, retries with growing backoff, and on the site a check that re-requests a daily series when fewer days come back than were asked for. Wide date ranges are split into windows the npm service accepts. The README embeds carry every style inline and escape package names, so a badge renders instead of showing a broken image.

Tradeoffs

The number called "lifetime" is really a count from January 2025 onward, fixed in code, so older packages look smaller than they are. In the terminal version a request that keeps failing returns zero silently, which reads as a real zero in the table. The site stops at 1,250 packages per maintainer. No test files appear anywhere in the repository, and the promised JSON API is still a roadmap item.

How to use it well

Run it with npx for a quick look at your own reach across many small packages, or drop the badge into a profile README where a live total is useful. Treat a surprise zero as a possible fetch failure and rerun before trusting it. It does not cover organization views, maintainer comparisons, or anything beyond download counts, such as dependents or version adoption.

Technical notes+

bin/cli.js pages the registry search with maintainer:<name> at size 250 until a short page, then runs four workers each issuing a point query for 2025-01-01:today plus a 30-day range query; fetchDownloads retries 429/503 (and a literal 1015 status) four times and returns 0 on exhaustion. website/lib/npm.ts caps search at five pages, caches the base list with unstable_cache for 3600s and range data for 600s, chunks range calls at 500 days, flags truncation when under 90% of expected days, and downsamples sparklines to 60 points. website/lib/embed.ts emits style-free SVG with xmlEscape and max-age=300 headers. package.json depends only on chalk.

Observed

License
MIT
Language
JavaScript CLI, TypeScript Next.js web app
Install surface
npx pkgfolio <username> or global npm install; Node 18 or newer
Interfaces
CLI, hosted web dashboard, SVG embed endpoints
Runtime dependencies (CLI)
chalk only
Authentication
None; uses public npm registry and downloads endpoints
Tests
No test files in the repository tree

Read from README.md, package.json, bin/cli.js, website/lib/npm.ts, website/lib/embed.ts, website/app/u/[username]/page.tsx, LICENSE.

What it can do

  • Display lifetime download statistics for all npm packages

    npm package maintainer username or package list → Aggregated lifetime download counts across all maintained packages

  • Show recent download statistics for npm packages

    npm package maintainer username or package list → Recent download metrics for maintained packages

  • Generate package portfolio via command line

    Command line execution with maintainer credentials → Text-based portfolio report in terminal

  • Generate package portfolio via web page

    Web browser access with maintainer username → Interactive web page displaying package statistics

  • Aggregate download metrics across multiple packages

    Multiple npm package names from same maintainer → Consolidated download statistics and portfolio overview

Tags

npmdownloadsportfoliodashboardcli

Tech Stack

Node.js

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.