Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

Predaxia Threat Model Builder

Threat Model Builder

A personal threat model in three minutes. Five questions. Zero data collected.


LiveLicenseStatusNo Tracking


For journalists, lawyers, NGOs, military families, divorce, high-risk travel — anyone with something to lose.


→ Try it live · Read the method · Glossary




Why this exists

Most security advice is generic. Use a password manager. Enable 2FA. Be careful what you click. Useful, but not personal. A journalist protecting sources, a lawyer holding privileged communications, a parent in a custody dispute, and a deployed military spouse all face different adversaries — and they all need different priorities.

The Threat Model Builder asks five questions. It returns an OPSEC score, the specific vulnerabilities that score reveals, and the exact next step to close each one.

It runs entirely in your browser. No account. No analytics. No telemetry. The page works offline once loaded. Your answers leave nothing behind.


What it does

The five-step flow

1. Pick your profile (7 archetypes)
2. Select what you are protecting
3. Identify your real adversaries
4. Audit your current setup (5 questions)
5. Get your score, gaps, and action plan

What you get back

· OPSEC score 0–100 with severity tier
· Vulnerabilities ranked high / medium
· Direct link to the fix for each gap
· A printable / copyable report
· Tools tested and verified by Predaxia


Profiles covered

ProfilePrimary threat surface
JournalistSource protection · hostile environments
Lawyer / NotaryClient data · legal confidentiality
NGO / ExpatField security · border crossings
Military FamilyLocation · deployment OPSEC
Divorce / LegalDevice audits · evidence protection
High-Risk TravelBorder agents · hostile networks
AnyoneData brokers · mass surveillance · digital hygiene

Scoring model

The score is computed from five setup answers and weighted by the highest-severity adversary in your profile.

QuestionRange
Messaging0–3
VPN0–3
Passwords0–3
Two-factor authentication0–3
Data broker exposure0–3
Adversary severity bonus+2 if any selected adversary has severity 3

Final score = 100 − (raw_points / 15) × 100, floor 0.

ScoreTierMeaning
70–100SOLIDOptimizations, not emergencies
40–69EXPOSEDExploitable gaps your adversaries can use
0–39CRITICALSetup leaves you compromised in real operations

Privacy by design

┌──────────────────────────────────────────────────────┐
│ No account. No email. No cookies. │
│ No analytics. No telemetry. No CDN. │
│ No server-side state. No localStorage. No tracking.│
└──────────────────────────────────────────────────────┘

Every answer stays in browser memory until you reload the page. The promise of zero storage is incompatible with persistence. If you want to keep your result, copy it or print it from the result screen.


Run locally

git clone https://github.com/Predaxia/threat-model-builder.git
cd threat-model-builder
open index.html # macOS
xdg-open index.html # Linux
start index.html # Windows

That's it. No build step. No dependencies. Single HTML file with vanilla JavaScript and inline CSS. Open it from a USB key, host it on a static folder, mirror it as a Tor hidden service — it does not care.


Embed it

Drop a single iframe wherever you need it.

<iframesrc="https://predaxia.com/threat-model-builder/"
width="100%" height="900"
frameborder="0"
title="Threat Model Builder"></iframe>

Or self-host: index.html is fully standalone.


Stack

LayerChoiceWhy
MarkupHand-written HTML5One file. Zero magic.
StylingInline CSS, custom propertiesNo framework. No CDN call.
LogicVanilla JS (IIFE, no deps)Runs offline. No supply chain.
FontsSpace Grotesk + Inter (Google Fonts)Optional. Falls back to system.
IconsInline SVG (Lucide-style)No icon font. ASCII-safe.
SchemaJSON-LD (HowTo, FAQPage)Structured data for search.

Project structure

threat-model-builder/
├── index.html Standalone wizard (HTML + CSS + JS, single file)
├── README.md This file
└── LICENSE MIT

Roadmap

  • Multi-language support (FR / ES / DE / AR)
  • Profile: activist
  • Profile: domestic abuse survivor (with safeguards)
  • Exportable PDF report (client-side)
  • Adversary database with country-specific overlays
  • CLI version for the paranoid

Suggestions are read. Open an issue.


Contributing

This is a public mirror of the production tool running on predaxia.com. Contributions are welcome but kept narrow:

  • Yes — typo fixes, accessibility improvements, clearer copy, better SVG icons, additional profiles backed by a real-world threat surface
  • No — analytics, third-party scripts, dependency on external services, "AI-powered" anything, dark patterns, growth hacks
  • Maybe — translations (open an issue first so we can sync vocabulary)

Open a Pull Request from a fork. Keep changes minimal and focused. The single-file constraint is non-negotiable.


Security disclosure

Found a bug that affects user safety? Email security@predaxia.com with details. PGP key on the website. Please do not open public issues for security-sensitive findings.


About Predaxia

Predaxia is an independent OPSEC publication. We test the tools we recommend, refuse the tools we don't, and never accept payment for placement. Affiliate links exist on the main site and are flagged accordingly. This repository is part of our commitment to put the operational layer in everyone's hands.

predaxia.com · Newsletter · Glossary


License

MIT — see LICENSE. Use it, fork it, host it, modify it, ship it. Attribution appreciated, not required.



There is no perfect setup.
The goal is simple: make yourself a harder target than the person next to you.



Releases

Packages

Contributors

Languages