Skip to content
BBrand
SHA-256 integrity verified

Brand asset registry.

One repo holds every logo. Every README points here. Update once, update everywhere. A SHA-256 manifest catches drift and accidental overwrites before they ship.

Verify

brand verify

Reconcile

brand audit --remote --org my-org

History

brand history my-tool

Features

Why centralize brand assets.

Single source of truth

Hundreds of logos across the org. Rebrand once, update everywhere — no more hunting through repos for stale logos.

Drift detection

A SHA-256 manifest tracks every asset, and CI fails the build the moment disk and manifest disagree. It catches accidents, not adversaries — the handbook is explicit about where that line sits.

Org reconciliation

Repos get renamed, archived, and deleted; registries quietly rot. One command checks every tracked slug against the live org and tells you which are renamed, archived, or genuinely orphaned.

CLI

Verify integrity

# Check all logos against manifest hashes
brand verify

# CI mode — fail if manifest is stale
brand manifest --check

Reconcile with the org

# Audit a whole org without cloning it
brand audit --remote --org my-org

# Reports renamed, archived and orphaned slugs.
# Nothing is ever deleted for you.

Inspect & remove

# When did this logo change, and to what?
brand history my-tool

# Removal is destructive, so it asks
brand remove old-tool --dry-run
brand remove old-tool --yes

Battle-tested

Lessons learned from migrating 100+ repos.

Badge collision guard

shields.io URLs with &logo= parameters look like brand logos. Multi-gate filtering catches badges before they get rewritten.

Markdown rendering traps

4+ spaces makes code blocks. Blank lines break HTML context. The audit command catches these before they break your README.

Format preservation

PNGs stay PNGs. JPEGs stay JPEGs. Format is a brand decision, not a build target. Never converts or compresses.

Quality scorecard

50/50 on the Ship Gate audit.

CategoryScoreNotes
A. Security10/10SECURITY.md, SHA-256 integrity, no network, no telemetry
B. Error Handling10/10Structured errors, clear CLI output, uniform 0/1/2/3 exit codes
C. Operator Docs10/10README, CHANGELOG, handbook, full CLI docs
D. Shipping Hygiene10/10Node 20/22/24 matrix, SHA-pinned actions, npm audit, Dependabot, 237 tests, full tag/release/npm parity
E. Identity10/10Logo, translations, landing page, metadata