DEV Community

CBT Tools
CBT Tools

Posted on

I Built a Mental Health Toolkit Hub Linking 36 Free Tools — Zero Signup, Zero Backend, Zero Dependencies

I Built a Mental Health Toolkit Hub Linking 36 Free Tools — Zero Signup, Zero Backend, Zero Dependencies

After building 36 standalone mental health tools, I hit a discovery problem: they were scattered across 36 separate HTML files with no navigation layer. Users had to know each URL. So I built a hub page — one index.html that links all 36 tools with categories, descriptions, and direct links.

The Architecture

One file, zero dependencies:

<!-- index.html — the entire hub -->
<!DOCTYPE html>
<html>
<head>
  <title>CBT Toolkit — 36 Free Mental Health Tools</title>
</head>
<body>
  <!-- 36 tool cards, each linking to a self-contained HTML file -->
  <a href="cbt-for-anxiety.html">CBT for Anxiety</a>
  <a href="cognitive-distortion-detector.html">Cognitive Distortion Detector</a>
  <!-- ... 34 more -->
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

No React. No Vue. No build step. No npm install. Just 36 <a> tags.

The 36 Tools

Organized into 3 tiers:

Tier 1: CBT Detectors (12 tools)

Pattern-matching algorithms that identify cognitive patterns:

  • Cognitive Distortion Detector — 11 CBT distortions (catastrophizing, all-or-nothing, overgeneralization, mind reading, fortune telling, should statements, labeling, personalization, etc.)
  • Core Belief Detector — downward arrow technique, 13 terminal core beliefs
  • Safety Behavior Detector — 9 CBT behavior categories (6 safety + 3 adaptive)
  • Habituation Pattern Detector — time-series trend detection for ERP
  • Catastrophe Prediction Calibration Detector — empirical disconfirmation rate
  • Price Discrimination Detector — consumer rights big-data abuse detection
  • ... 6 more detectors

Tier 2: CBT-for-X Tools (18 tools)

Condition-specific tools bridging to the detectors:

  • CBT for OCD, ADHD, Burnout, Body Image, Panic Attacks, PTSD, Shame, Low Self-Esteem, Anger, Health Anxiety, Social Anxiety, Procrastination, Perfectionism, Test Anxiety, Insomnia, Imposter Syndrome, Emotional Drain, People Pleasing

Tier 3: Niche Funnels (6 tools)

Trending-topic entry points bridging to CBT core:

  • Consumer Rights, Social Anxiety, Perfectionism, Procrastination, Test Anxiety, Health Anxiety

Why a Hub Page Matters

Before: 36 separate URLs. Users had to discover each tool independently. No cross-promotion. No navigation.

After: One URL → browse all 36 tools → click through to any tool → each tool is still self-contained (works offline, no hub dependency).

The hub is a discovery layer, not a dependency. Each tool remains a standalone HTML file that works independently. The hub just makes them findable.

The Design Constraints

Every tool in the toolkit follows these rules:

  1. Zero signup — no login, no account, no email
  2. Zero backend — all data stays in localStorage
  3. Zero dependencies — no npm packages, no CDNs, no frameworks
  4. Zero tracking — no analytics, no cookies, no beacons
  5. Offline-capable — each HTML file works without a network

These constraints matter for mental health tools specifically:

  • Privacy: thoughts stay in the browser, never sent to a server
  • Accessibility: no signup friction for people in distress
  • Cost: free forever, no API bills, no hosting costs beyond GitHub Pages
  • Explainability: keyword-pattern matching is deterministic — same input → same output, every time

The Cross-Promotion Network

Each tool links back to the hub. Each detector is referenced by multiple CBT-for-X tools. The hub creates a discovery graph:

Hub → CBT for Anxiety → Cognitive Distortion Detector → Hub
Hub → CBT for OCD → Safety Behavior Detector → Hub
Hub → CBT for Procrastination → Core Belief Detector → Hub
Enter fullscreen mode Exit fullscreen mode

A user who finds one tool discovers all 36.

What I Learned Building 36 Tools

Pattern reuse > code reuse. The same keyword-matching algorithm powers 12 different detectors. The same localStorage wrapper powers 36 tools. The same CSS layout powers 36 UIs. The variation is in the domain logic — which keywords map to which patterns — not the infrastructure.

Rule-based > ML for constrained domains. CBT has a small, well-defined output space (11 distortions, 13 core beliefs, 9 safety behaviors). ML adds probabilistic noise to a deterministic classification task. Rule-based gives: zero latency, zero cost, zero privacy risk, full explainability.

The hub was an afterthought that shouldn't have been. I built 36 tools before building the navigation layer. Users don't discover tools they can't find. The hub page took 30 minutes to build and probably delivers more value than tools 25-36.

Try It

The hub is live at alexcoledev.github.io/cbt-toolkit. All 36 tools are free, no signup required.

The source is on GitHub. Each tool is a standalone HTML file you can download and open locally.


This is part of a series on building mental health tools with vanilla JS. Previous: 10 detectors meta-synthesis, FastAPI architecture for 3 agents, price discrimination detector.

Top comments (0)