Security

2026

  • I Rebuilt My Site Without PHP

    I rebuilt this site with Hugo, strict security checks, accessible templates and no PHP or database.

  • A database rollout on a test environment

    I rolled several pending migrations onto a non-production Cloudflare D1 database, with exports, verification and a restore drill around the risky parts.

  • Support, share and post layouts

    I rebuilt the blog’s support cards, sharing controls and post layout around safer copying, progressive enhancement and measured dimensions.

  • Collectors and credential handling

    A collector audit exposed why credential names cannot be treated as configuration. I standardized the boundary across sources and simplified the CI wrapper that feeds them.

  • A threat model for a static site

    A static Hugo site still has a publishing pipeline, credentials, third parties, and readers to protect. I put those risks into an OWASP Threat Dragon model and made CI keep the model tied to controls that actually exist.

  • Privacy engineering for analytics

    I built analytics reporting around privacy floors, fixed release periods, and an append-only ledger. Security review kept finding ways that individually safe reports could reveal more when compared.