Cloudsmith

cloudsmith.com

ALMOST

A weekend of work, and real gaps remain.

A hosted package registry for every format at once — npm, containers, Python, Debian, Maven — with access control, and a proxy cache in front of the public ones.

Promptfree, for everyone, and the only version there is
Build the package registry I actually need instead of a hosted one — and start with the reason, because it is usually not distribution.

**It is the proxy cache.** A public registry having a bad day, or a package being unpublished, stops every build you have. A caching proxy in front of the public registries fixes that, and it is the cheapest half of this product.

STACK
- Verdaccio for npm, or a registry that speaks the formats you actually use. Do not implement a registry protocol
- A container registry — the reference implementation is open and small
- Node 20+ with Fastify only for the pieces around them
- Caddy in front, on a private network

START WITH THE PROXY, NOT THE REGISTRY
- Configure each public registry as an upstream, cache every artefact you fetch, and serve from the cache thereafter
- **Never expire an artefact you have cached.** A version is immutable by convention; if it disappears upstream, your copy is the reason the build still runs
- That single change removes an entire class of outage, and it is a configuration file

PUBLISHING YOUR OWN
- Scoped or namespaced so a private package cannot be confused with a public one
- **Dependency confusion is the attack to design against**: if your internal package name also exists publicly and the client prefers the public one, somebody else's code runs in your build. Scope every internal package, and configure the client so the internal scope resolves only to your registry
- Immutable versions. Republishing a version that has already been consumed is how a build becomes unreproducible, and the registry should refuse it rather than trusting discipline

STORAGE, WHICH IS THE BILL
- Artefacts accumulate forever and nobody notices until the disk is full
- A retention policy per repository — keep every released version, keep the last N pre-releases, keep nothing untagged beyond a window
- Container images are the worst of it: measure layers rather than images, since the same base is shared
- A disk watchdog and a report of what is growing, monthly

ACCESS AND AUDIT
- Read and write tokens separately, scoped per repository, revocable, with a last-used date
- Every publish recorded with who, what version and when, append-only. That log is what an auditor asks for and it cannot be reconstructed
- A build token is not a person's token. Machine identities with their own scopes, expiring

SIGNING, WHICH IS WORTH THE AFTERNOON
- Sign what you publish and verify on install. A registry that only serves bytes proves nothing about who produced them
- Record a provenance attestation from CI if your ecosystem supports one, so an artefact can be traced back to the commit that built it

OPERATIONS
- .env: STORAGE_PATH, UPSTREAM registries, tokens
- Backups cover your own published artefacts. The cached public ones are re-fetchable, and saying which is which is part of the design
- Health endpoint that resolves one package through the proxy

WHAT MATTERS MOST
The caching proxy and scoping against dependency confusion. The first stops other people's outages being yours; the second stops somebody else's package being yours.

What you lose

  • A dozen registry formats in one place, each with its own protocol and its own client expectations
  • Storage and bandwidth for artefacts, which grows quietly and forever
  • A proxy cache that keeps your builds working when a public registry has a bad day
  • Access control and an audit trail an auditor will accept

If you would rather not build

  • The reference container registry, which is open and small
  • A caching proxy alone, which is most of the value for none of the effort

The escape hatch

open source · no votes, no paid placement

Verdaccio

$0

A lightweight private npm registry with upstream proxying and caching.

verdaccio/verdacciofree · open source

Harbor

$0

A container registry with scanning, signing and access control.

goharbor/harborfree · open source

Why this verdict

our own opinion · changed only by a person

45/100

Verdict kinda at 45: the registries are open and the proxy is a configuration file, but storage grows forever and the audit trail is a real requirement in some companies. The dependency-confusion point is the one worth the entry.

History

tracked since 14 Aug 2026 · nothing is ever overwritten

Interest · last 30 days

Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.

Questions about Cloudsmith

answered from the record above

Is Cloudsmith free?

No — the plan we track is $89 a month. From around $89/month billed monthly, priced on storage and transfer.

Can you replace Cloudsmith by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 45 out of 100, build time a weekend. Read what you lose before you decide.

How much does Cloudsmith cost?

$89 a month on Basic — $1,068 a year. Recorded 14 Aug 2026.

What do you lose by replacing Cloudsmith?

A dozen registry formats in one place, each with its own protocol and its own client expectations; Storage and bandwidth for artefacts, which grows quietly and forever; A proxy cache that keeps your builds working when a public registry has a bad day; Access control and an audit trail an auditor will accept. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Cloudsmith?

Yes: Verdaccio, Harbor. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 42 in Dev tools

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc