Skip to content

Predaxia/threat-model-builder

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.


Live License Status No 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

Profile Primary threat surface
Journalist Source protection · hostile environments
Lawyer / Notary Client data · legal confidentiality
NGO / Expat Field security · border crossings
Military Family Location · deployment OPSEC
Divorce / Legal Device audits · evidence protection
High-Risk Travel Border agents · hostile networks
Anyone Data 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.

Question Range
Messaging 0–3
VPN 0–3
Passwords 0–3
Two-factor authentication 0–3
Data broker exposure 0–3
Adversary severity bonus +2 if any selected adversary has severity 3

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

Score Tier Meaning
70–100 SOLID Optimizations, not emergencies
40–69 EXPOSED Exploitable gaps your adversaries can use
0–39 CRITICAL Setup 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.

<iframe
  src="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

Layer Choice Why
Markup Hand-written HTML5 One file. Zero magic.
Styling Inline CSS, custom properties No framework. No CDN call.
Logic Vanilla JS (IIFE, no deps) Runs offline. No supply chain.
Fonts Space Grotesk + Inter (Google Fonts) Optional. Falls back to system.
Icons Inline SVG (Lucide-style) No icon font. ASCII-safe.
Schema JSON-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.



About

Interactive threat model builder. 5 questions, personalized score, browser-only, no data collected.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages