Stores & marketplaces

npm, PyPI and crates.io

Package registries work as search engines for developers. Your README is the landing page.

Cost
Free

Free to use. No paid tier is needed to list or post.

Verdict
works

Works: developers search packages, and your README is the landing page.

Difficulty
Easy

Mostly self-serve. Sign up and post, with light checks.

Effort
Low

About 2 to 4 hours a month.

First result
1 day to publish, discovery takes weeks

A rough range for one person working on it part-time.

Payoff
Compounds

keeps growing while you keep at it.

Best for

Libraries, SDKs and command-line tools.

Not for

Consumer apps.

Pros

  • Developers search packages here
  • README is the landing page

Cons

  • Name squatting and crowding
  • Upkeep with each release

The full guide

Last verified 2026-10-30

01What it is and who is there

npm (JavaScript), PyPI (Python) and crates.io (Rust) are package registries. Developers search them for libraries, and the package page, usually your README, is often the first thing they read. For a library or SDK, the registry works like a search engine and a landing page in one.

02Cost and what you actually pay for

Publishing public packages is free on all three. Your cost is keeping the package maintained and documented.

03Is it right for you?

It fits libraries, SDKs, command-line tools and API clients. It fits poorly for consumer apps. A package with a good name, README and recent releases does much of the marketing.

04Before you start

  • An account on each registry you publish to, with two-factor authentication.
  • A clear, available package name.
  • A README with install, a short example and links.
  • Read each registry's policies on naming and acceptable use.

05Step-by-step: how to distribute here

  1. Pick a name people would search for.
  2. Write a README that shows install and a working example in the first screen.
  3. Add keywords or classifiers that match your topic.
  4. Publish, then tag a release on GitHub with notes.
  5. Release fixes promptly and keep a changelog.
  6. Link the package from your docs and site.

06What to post or submit

README opening:

# [package]
[One sentence: what it does].

Install: `[install command]`

[Five-line example]

07Common mistakes and do-nots

  • Do not squat names or publish typo-squatted names. Registries remove them.
  • Do not publish secrets in packages.
  • Do not let critical issues sit unanswered.

08How to measure it

  • Track weekly downloads on each registry.
  • Track GitHub stars, issues and dependents.
  • A realistic test: three months after first release.

09Time budget

  • Before: 2 to 5 hours for packaging and README.
  • Ongoing: 1 to 4 hours a month.

10Pair it with

11Sources

Sources