The full guide
Last verified 2026-10-30
Links checked 2026-10-30 · The site blocks automated checks, so its links are unconfirmed
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
- Pick a name people would search for.
- Write a README that shows install and a working example in the first screen.
- Add keywords or classifiers that match your topic.
- Publish, then tag a release on GitHub with notes.
- Release fixes promptly and keep a changelog.
- 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
- GitHub (README, topics, releases) — the repository.
- Homebrew — command-line installs on Mac and Linux.
- Hacker News (Show HN) — a launch.
- GitHub awesome lists — curated lists.
11Sources
- npm: https://npmjs.com
