The cases

Name Published on npm Imported by developers Follow semver Use cases API Notes
“public” Our product. Nothing special.
“unstable” No API we want to try out with the community. They could become stable. Same package, but modules exported with a prefix: unstable_ . Dependencies using must pin their version.
“internals” No No Avoid duplication of code between npm packages. package name:
*-internals for logic used by public packages.
@company-name/internal-* for infra Dependencies using must pin their version.
“private” No No No Workspace local packages, examples. private: true property in package.json.
@company-name/private-* for logic only used inside the repository.

Naming rules