How it's built

Last updated 2026-10-12

If you're going to load someone else's list into your firewall, you should know how it's made. This page is for the IT and security people who ask that question. They're right to.

The short version: WatchmanHQ is a small system built to run on its own every day, fail safe, explain every decision it makes, and cost next to nothing. It runs on free tiers and plain, well-understood tools, with the same habits we'd expect of any enterprise security team.

From research to block list

Every day, without anyone touching it:

  1. Read. A collector reads the public RSS feeds of the research teams we follow, and treats every article as untrusted.
  2. Extract. It keeps only indicators the authors defanged, with the sentence each came from, and works out the role each one played.
  3. Corroborate. Repeats from one publisher count once. Reports from different teams back each other up.
  4. Validate. Block-list candidates are checked against passive public records. We never visit, scan or resolve them ourselves.
  5. Decide. Fixed, tested rules place each one on Confident, Blocking or Hunting, and record the reasons.
  6. Gate. A release gate re-checks the finished lists and refuses to publish if anything is out of place.
  7. Build. This site checks every file against its SHA-256 checksum, builds plain static pages and runs its quality gates.
  8. Publish and watch. The site goes live, a smoke test checks the live copy, and a watchdog checks it again every three hours.

The rules behind steps 2 to 6 are written out in full in Methodology.

The principles behind it

The site is a target too

A security site that gets tampered with does real harm, so this one leaves an attacker very little to work with.

Nothing goes live without passing

WhenWhat runsWhat it catches
Every collector runThe release gateLists that would block a critical service, missing or stale safety data, anything out of place
Every site buildUnit testsEscaping, defanging, feed verification, page layout, workflow hardening
Every site buildChecksum verificationAny feed file that doesn't match its manifest
Every site buildQuality gatesScripts or inline styles, live indicators outside the copy boxes, broken links, non-HTTPS links, unexpected email addresses, secrets, weakened security headers, an expiring security.txt
Every pull requestAll of the above, without deployingMistakes, before they reach the live site

One failure anywhere and nothing is published. The live site keeps its last good release.

Keeping watch on ourselves

A watchman who falls asleep is worse than none, because people think they're covered. So the system checks on itself:

The stack

LayerWhat we useWhy
CollectionPython, run daily on GitHub ActionsSimple, testable and free
SiteA static site generator built on Python's standard libraryNo third-party code to keep patched
HostingAzure Static Web AppsPlain files served worldwide, on the free plan
DNSCloudflareDNS with DNSSEC
InfrastructureTerraform, applied by GitHub ActionsRebuildable from code, with no cloud passwords stored anywhere
Monitoringhealthchecks.ioAn email when a check fails or goes quiet
AICoding and writing assistantsFaster drafting, with a person reviewing everything. See How we use AI

Who built it

WatchmanHQ is designed, built and run by Vincent Morris, drawing on more than twelve years across IT operations, cloud, cybersecurity and DevSecOps. It takes the habits of enterprise security (least privilege, defense in depth, fail-safe releases, monitoring that notices silence) and points them at the people who could never afford a security team.

Want to talk shop about the pipeline, the methodology or sharing data? Email hello@watchmanhq.com.