Security

Threat model

This covers the app network: the single-purpose tools under bryancalabro.com, and the build and deploy path behind them. Everything here describes code and configuration that exists, and each claim names how it was checked.

Assets

AssetWhere it livesWhy someone would want it
Whatever a visitor types into a toolThat visitor's browser onlyCSV exports, password candidates, draft decision records, pasted model output
The source of every appGitHub, bryancalabro orgSupply chain: a change here reaches every visitor on the next deploy
Deploy credentials and DNS controlThe hosting and registrar accountsFull control of what is served at a live host
The app-inventory catalogGoogle DriveNames, hosts and descriptions for every surface, live and planned

The first row is the one worth being careful about, and it is the one the architecture is built around.

Trust boundaries

  1. Visitor's browser to my origin. The only thing that crosses it is the static bundle, in one direction. The apps make no API calls of their own.
  2. Visitor's browser to Google Fonts. The one third-party origin any app talks to. It sees the request for the stylesheet and the font files, which means it sees the visitor's IP and user agent. This is the weakest claim on the page and it is stated plainly rather than buried.
  3. My machine and the agent to GitHub. Everything that reaches production goes through a pull request here.
  4. GitHub to the host. The build runs on the host's runner and serves the output.

What is local-only, and how that was verified

The claim: what a visitor types into any of these tools never leaves their browser.

How it is checked, rather than asserted:

V-4 recorded

Analytics is Vercel Analytics plus Vercel Speed Insights, on calabrodesign only. Data held: pageview and performance telemetry. The app itself collects no personal data.

Source: package.json dependencies and README.md in calabrodesign. Last verified 2026-09-21.

What this does not protect against

Stated because a threat model that only lists wins is marketing.

V-1 open

DNS provider and domain registrar for bryancalabro.com. Not confirmed.

Source: none found. Last verified 2026-09-21.

The one that is still open

F-2 open

On the same qr-forge merge, Bryan's review pass flagged relative OG URLs and an under-wired PNG apple-touch icon. The sheet records this as noted, not as resolved, unlike the 404 beside it.

Source: app-inventory sheet, qr-forge row notes. Last verified 2026-09-21.

Recorded as noted, not as fixed. Relative OG URLs and an under-wired apple-touch icon are not a security finding in themselves, but a review finding that was seen and never closed is exactly the pattern that hides one that is.

The fix in the current build is structural: every app and every desk generates its favicons and its 1200x630 OG image from one source with npm run chrome, writes absolute OG URLs, and a smoke check fails the build if any of those files is missing from the output. That is what makes this the last time.