Full-Stack-
Spectrum

Open-source security & developer tooling. Vulnerability reports, security graphs and analytics that turn raw scanner output into answers.

projects

Tools I've shipped

Small, sharp, open-source utilities. Each one does a single job and installs in one line.

TypeScriptDocker

Forgely

security graphs

Maps SCA (CVEs, transitive risk, quarantine) and CIEM (members, teams, service accounts) into interactive graphs so teams can trace blast radius and attack paths at a glance.

$docker run -d -p 8000:8000 fullstackspectrum/forgely:latest
Pythonzero deps

Vulnly

HTML vuln reports

Turn Trivy, Grype, Snyk and Cloudsmith scan JSON into a single self-contained HTML report that works fully offline.

$pip install vulnly
PythonCLI

Assay

repo vuln summaries

Summarise OSV vulnerability data across Cloudsmith workspaces and repositories, as rich terminal reports or JSON.

$uv run assay.py --workspace <workspace>
PythonCLI

Policy Insights

policy log dashboards

Turn Cloudsmith policy decision logs into a terminal report or HTML dashboard: activity over time, noisiest policies, and breakdowns by repo, format and package.

$uv run policy-insights --help

about

Security tooling,
end to end.

Full-Stack-Spectrum is where I build and publish open-source tools for DevSecOps teams — the stuff I wished existed when staring at a wall of scanner JSON.

The focus is on turning noisy data into decisions: which CVEs actually matter, where the blast radius ends, and which policies are doing the work.

Everything ships the easy way — Homebrew, PyPI or a single Docker container — and the Cloudsmith tools are community projects, not affiliated with Cloudsmith.

~/fullstackspectrum
$ cat profile.yaml
name: Full-Stack-Spectrum
focus:
  - software supply chain security
  - vulnerability analytics
  - developer experience
stack: [python, typescript, docker]
ships_via: [brew, pypi, docker hub]
status: building
$ 

writing

From the blog

All posts →

Got an idea, a bug or a use case?

Issues and PRs are always welcome. If you're using one of these tools in anger, I'd love to hear how.