Skip to content

Add an annotated SBOM examples page - #129

Merged
vpetersson merged 1 commit into
sbomify:masterfrom
vpetersson-bot:content-sbom-examples
Aug 5, 2026
Merged

Add an annotated SBOM examples page#129
vpetersson merged 1 commit into
sbomify:masterfrom
vpetersson-bot:content-sbom-examples

Conversation

@vpetersson-bot

@vpetersson-bot vpetersson-bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Adds /sbom-examples/, an annotated reference page showing what SBOM files actually look like.

The page

Most material on this topic describes SBOMs and stops. This page shows the files:

  • A minimal CycloneDX 1.6 document, annotated field by field
  • The SPDX 2.3 equivalent of the same header, with a field-to-field mapping table
  • A real component entry, taken verbatim from an SBOM generated against alpine:3.18 — purl, SPDX license identifier, hashes, supplier
  • That entry checked against the seven NTIA minimum elements, which surfaces a point most write-ups miss: two of the seven live in the document header, so a bare component list cannot meet the baseline however good the entries are

Sourced from the specification maintainers and the agencies — NTIA and CISA for the minimum elements (including that CISA's 2025 update is still a comment draft, consistent with /compliance/ntia-minimum-elements/), OWASP CycloneDX and the Linux Foundation's SPDX for the formats and their own example repositories, OpenSSF and ENISA for background.

Also links the page from the formats section of /what-is-sbom/.

Checks

  • All 8 external links verified to return 200
  • All 3 JSON examples parse
  • Production build: page emits FAQPage schema with 5 entries; site-wide invalid JSON-LD stays 0, zero-dates 0, and no other entity count moves
  • bun run lint passes

Keyword research against DataForSEO turned up a gap worth filling.
sbomify.com ranks for 128 keywords, and almost none of them are the
category's own terms: "sbom" (4,400/mo, KD 9) does not rank in the top
50 at all, and what does rank is tangential -- GPL licensing, CVSS,
in-toto.

"sbom examples" and "sbom example" are 210/mo each at KD 1 and 4, with
no page on the site targeting either. The SERP is a GitHub repo and
three vendor blog posts, none of which show a complete annotated file.

This page shows the files instead of describing them. A minimal
CycloneDX 1.6 document and its SPDX 2.3 equivalent, field by field and
mapped to each other, then a real component entry taken verbatim from
an SBOM generated against alpine:3.18 -- purl, SPDX license identifier,
hashes and supplier -- and a check of that entry against the seven NTIA
minimum elements, which shows that two of the seven live in the header
rather than the component list.

Sources are the specification maintainers and the agencies, not vendor
blogs: NTIA and CISA for the minimum elements, OWASP CycloneDX and the
Linux Foundation's SPDX for the formats and their example repositories,
OpenSSF and ENISA for background. Every external link was checked to
resolve, and the three JSON examples parse.

Also links the new page from the formats section of /what-is-sbom/,
which is the strongest internally-linked page on the topic.

Verified against a production build: the page emits FAQPage schema with
five entries, site-wide invalid JSON-LD stays 0, and no other entity
count moves.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FbqYj6ztzG6yautDpRWDXS
@vpetersson
vpetersson merged commit a810fda into sbomify:master Aug 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants