Minimal vs Chainguard

Chainguard largely created this category, and Minimal is built on Wolfi and apko — their open-source work. This is not a claim to replace them. It is a measured answer to one specific question: if you want hardened images without a paid tier, what do you actually give up?

The honest framing

Chainguard's free tier publishes a limited set of images; the full catalog is commercial. When this scan ran on 2026-10-15, 20 of Minimal's images had a free, publicly pullable Chainguard equivalent. Of those, 16 were exact or same-major/minor version pairs and were scored; 4 mismatched or unknown pairs were excluded. This table is narrow by construction, and that is the most important caveat on the page. Missing images are never scored as wins.

3
Minimal lower
11
Tied
2
Minimal higher
16
Version-matched

Across those 16 images Minimal totalled 12 unique CVEs against12. Most rows are ties at or near zero, which is the honest headline: on the images where both are free, the two are broadly comparable.

Full head-to-head

Exact and same-major/minor version pairs only. Δ is Minimal minus Chainguard, so negative is better for Minimal.

ImageMinimalChainguardΔMinimal crit/highChainguard crit/high
haproxy01-10 / 00 / 0
helm12-10 / 00 / 0
redis-slim01-10 / 00 / 0
crane00—0 / 00 / 0
dotnet00—0 / 00 / 0
go00—0 / 00 / 0
grype55—0 / 30 / 3
kubectl11—0 / 00 / 0
nginx00—0 / 00 / 0
node-slim00—0 / 00 / 0
php00—0 / 00 / 0
postgres-slim00—0 / 00 / 0
python00—0 / 00 / 0
valkey00—0 / 00 / 0
ruby10+10 / 00 / 0
cosign42+20 / 00 / 0

What you give up, and what you gain

MinimalChainguard
Catalogue size150Thousands
Cost$0, whole catalogFree tier; paid for the full catalog
Auth to pullNoNo (free tier)
Build recipes publicYes, MIT, one repoYes
Signing, SBOM, provenanceYes — SLSA v1.0 Build L2Yes
Rebuild cadenceDailyDaily or faster
Support contract / compliance paperworkNoYes

Chainguard details verified 2026-10-15 from their public documentation and by pulling from their free tier; they change often, so check for yourself rather than taking this table's word for it. Minimal's own column is checkable with the commands on theverify page.

When Chainguard is the right answer

If you need thousands of images, FedRAMP or STIG artifacts, SLSA Build L3, a vendor SLA, or CVE remediation someone is contractually obliged to deliver — buy the product. Minimal offers none of that, and pretending otherwise would be the kind of claim this project has already had to retract once.

Minimal fits when you want a catalog small enough to read end to end, every recipe in one MIT-licensed repo, at zero cost and with no account.

Trying it

docker pull ghcr.io/rtvkiz/minimal-python:latest
grype ghcr.io/rtvkiz/minimal-python:latest

How these numbers were produced

  • Scanner: Grype 0.109.1, vulnerability DB schema v6.1.10, built 2026-10-15T06:30:36Z.
  • DB checksum: https://grype.anchore.io/databases/v6/vulnerability-db_v6.1.10_2026-10-15T00:29:08Z_1792045836.tar.zst?checksum=sha256%3A2f1597f25b5089e966272b251eb4d1f9977e59d57029af1c8810deb6e5321aa2
  • Platform: linux/amd64. Scan date: 2026-10-15.
  • Production latest tags were resolved to immutable digests before scanning, so the run is repeatable.
  • Every image was scanned with the same Grype binary and the same frozen database.
  • Raw Grype findings. No vendor VEX suppression was applied to anyone, including us.
  • Only publicly pullable images were scanned. No paid or private registry credentials were used.
  • Only exact or same-major/minor upstream version pairs are scored. Mismatched and unknown versions are excluded.

The full 540-row dataset, including the resolved reference and digest for every provider/image pair, is here: cve-comparison-2026-10-15.csv. The scored-pair inputs and version classifications are here:cve-comparison-pairs-2026-10-15.csv. Every figure on this page is derived from those files.

What this does not prove

Exact versions can still bundle different feature sets, and same-major/minor pairs can use different patch releases, so an individual outlier still needs inspection before it is treated as a product-level claim. A scanner reports known findings visible to one database snapshot; a low count is not proof that an image is free of vulnerabilities. An image a vendor does not publish is counted as not available — never as zero.