Richard Johnson
Projects

Things I build

Personal and open-source projects from my own time. Scroll each project's screenshots sideways, or tap one to enlarge it.

Open source · Security tooling

STIG Dashboard

An offline, risk-ranked viewer for DISA STIG checklist results, in a single HTML file.

Built with assistance from Claude Code.

  • Private by design. Runs in your browser. Nothing is uploaded.
  • Bring your checklists. Drop in many .ckl and .cklb files at once.
  • Ranks by risk, not raw counts. Exposure scores weighted by severity.
  • Matches your scanner. Criticality override via CSV to match ACAS.
  • Five views. Dashboard, Assets, STIGs, Findings, Compliance.
  • Mapped to RMF. Findings roll up to control families.
  • Drill all the way down. From environment to host to the exact rule.
Built with Claude CodeHTML + JavaScriptClient-side onlyPowerShell sample data
Dashboard: assetsComposite Exposure Score over time, a gauge for the whole environment, assets by OS, and a risk spread of every asset.
Dashboard: findingsCompliance by CAT category, findings by severity and STIG, and an ACR by CAT criticality matrix.
AssetsEvery host with its criticality rating, exposure score, open findings and compliance. Sortable, searchable and exportable.
Asset drill-downFrom a host to its findings to the full STIG rule text, check and fix, in three side-by-side panels.
ComplianceFindings mapped to RMF control families and individual controls, with drill-down to the rules behind each one.
Open source · Web app

PokéMans

A Pokémon card and species collection tracker with daily price history.

Built with assistance from Claude Code.

  • Frontend. Cloudflare R2.
  • Backend. Supabase Postgres.
  • Compute. Supabase Edge Functions, GitHub Actions.
  • Authentication. Social logins into Postgres.
  • Pokédex. Every Pokémon, with all its cards.
  • Every English card. 20,000+ cards, every set.
  • Price history. Daily prices, charted per printing.
  • Collections. Private collections and want lists.
  • Advanced search. Custom query language for fast filtering.
  • Admin watch floor. Ops panel that monitors everything.
Built with Claude CodeReactViteTailwind CSSSupabasePostgres
PokédexAll 1,025 Pokémon, with filters for type, generation, ability and base stats, plus sortable results.
Pokémon detailBase stats, abilities, the evolution chain, and every trading card for that Pokémon.
CardsEvery English card in every set, filterable by type, expansion, series, rarity and illustrator.
Card detail and price historyDaily price charts per printing, with market price against lowest listing over 7 days to all time.
Collection trackingBinders and boxes per account, with a running total of what the collection is worth.
Want listTrack the cards still needed. Owned cards light up, and a progress bar shows how close the set is.
Advanced searchA small query language with operators, ranges, wildcards, AND, OR and NOT, plus autocomplete.
Admin watch floorPrice-capture coverage, scheduled jobs, open conditions and one-click job runs.
Open source · Web app

independance

A visual dependency map for projects, tasks and POA&Ms.

Built with assistance from Claude Code.

  • Auto-arranging layout. Tiles group and arrange by dependency chain.
  • Chain highlighting. Select a tile to spotlight its full chain.
  • Rich in-place editing. Expand a tile to edit it, POA&M fields included.
  • Fast linking. Drag tile onto tile to link, or hover to quick-add.
  • Rollups and filters. Downstream counts on projects, filter any field.
  • Customizable. Your own fields, types, statuses, light/dark.
  • Fully local. No account, no cloud. Local SQLite file.
Built with Claude CodeReactTypeScriptReact FlowExpressSQLite
Auto-arranged boardTiles group themselves into readable dependency chains, no manual layout needed.
Dependency chain highlightSelect a tile and its full chain of ancestors and descendants lights up while the rest dims.
In-place editingClick a tile to expand it and edit its fields, including POA&M risk and control details.
Security tool · Web app

Trigger

Purple-team adversary emulation mapped to MITRE ATT&CK.

Built with assistance from Claude Code.

  • ATT&CK matrix. 697 techniques, one view.
  • Threat groups. 174 APT groups to focus on.
  • Atomic tests. 1,817 Red Canary atomics.
  • Scenarios. Build test plans from atomics.
  • Dry run. Prerequisites checked first.
  • Run history. Results, cleanup and residue.
  • Scoring. Protect, Detect, Respond, Recover.
  • Reporting. Letter grade and PDF summary.
Built with Claude CodeMITRE ATT&CKRed Canary AtomicsPurple team
ATT&CK matrixAll 697 techniques by tactic.
Threat groupsPick APT groups and see the techniques they use.
Group heatmapMatrix cells shaded by how many chosen groups use them.
Technique detailMitigations and detections, with a link to MITRE.
Scenario dry runPrerequisites checked before anything runs.
Run assessmentRate Protect, Detect, Respond and Recover per test.
DashboardLetter grade and capability scores across all runs.
Executive reportOne-click PDF summary for leadership.