I'm Shipping 5 npm Packages to 10,000 Downloads

This is the first post in a series. The goal is simple: get my five npm packages to 10,000 combined downloads before the end of the year. I'm going to write about every step — what I ship, what works, what doesn't, and the real numbers.

No growth hacks. No threads about "how I made $10k in a month." Just shipping, twice a day, and writing down what happens.

Where I started

I have five packages. As of this morning (Nov 11), their combined downloads are 4,153. That leaves 5,847 to go.

The five:

  • plumber-linter — a CI/CD pipeline linter that flags hardcoded secrets, leaked credentials, and dead code, with fixes in plain English. 1,340 downloads.
  • environmental-peek — safely inspect .env files without leaking secrets. Mask values, diff against .env.example, generate .env.example. 962 downloads.
  • hexlens — a binary analysis tool. Parse PE, ELF, Mach-O, WASM, DEX and .NET, with strings, graphs, and now YARA rule scanning. 840 downloads.
  • react-dismiss — a tiny React hook that dismisses dropdowns, popovers and modals on outside click or Escape. 563 downloads.
  • @parasraju/plumber-mcp — the plumber-linter engine as an MCP server, so AI coding tools can scan pipelines too. 448 downloads.

What I learned so far

Downloads don't grow steadily. They spike on publish days and go flat otherwise.

The numbers from my own packages: a publish day spikes around 200 downloads. A flat day is 0 to 10 per package, 30 to 50 combined. It doesn't matter much whether the release is big or small — every publish spikes, even a bug-fix patch. The day after a publish there's a small tail, then it's back to flat.

So the strategy writes itself: ship twice a day, every day. One feature in the morning, one in the evening. Medium features, not just bug fixes. Every publish gets a version bump, a README touch-up, and better keywords, because ranking is part of shipping.

The last two days proved it: +406 downloads one day, +397 the next, right after the twice-a-day shipping started.

The rules I'm playing by

  • Update the existing five. No new tools. New ideas are tempting, but five packages with real users beat ten half-built ones.
  • Two ships a day, 11am and 9pm. If I miss one, I do the next one. No doubling up.
  • Every ship is a real feature. Not version bumps for the sake of it.
  • Write about it. That's what this series is.

What this series will be

Each post covers a ship or a lesson: what changed in the package, why, and what the numbers did after. The wins and the misses. When something breaks — and it will — I'll write about that too.

If you build tools, ship packages, or you're trying to get your own project past the flat-days problem, follow along. And if you've used any of the five, try the latest version and tell me what it missed. That's the fastest way to make the next release better.

The counter starts at 4,153. Let's see how fast it moves.

🔗 npm: https://www.npmjs.com/~parasraju
💻 GitHub: https://github.com/parasraju

Part 1 of the series "Shipping 5 npm packages to 10k downloads".