Vibecode Dead Man's Snitch

track this build5 phases, 10 steps, beginner friendly
YES · one-shottable
price $19/moyou'd save $228/yrbuild time one sittingcategory ⏰ cron monitoringreplaced by 0 people

The entire product is "expect a ping every N, shout when it stops". That is a table, a loop and a webhook. The hosted version earns its fee by being off your box and by the alert routing, not by the code.

the project pack5 files · written for this build, step by step
README.md
# Dead Man's Snitch · indie build

A dead-man's switch for scheduled jobs: each job checks in at a URL, silence past the interval plus grace raises one alert, the next check-in recovers it. The minimal version of heartbeat monitoring, on a box that is not the one running the jobs.

Estimated effort: **one sitting**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Runtime | Node 22, node:http and node:sqlite | the whole product is a table, a loop and a webhook |
| Hosting | A VPS separate from the jobs | or it is decorative |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **Node.js 22 or newer** · free
  - Why: Everything in this build runs on it: the server, the scripts, the tests.
  - Get it: Download the LTS installer from nodejs.org, or install with your package manager (brew install node, or nvm install 22). Restart the terminal afterwards.
  - Verify: node --version prints v22 or higher
- [ ] **A terminal and a code editor** · free
  - Why: Every step below is a command you type or a file you edit.
  - Get it: VS Code (code.visualstudio.com), Cursor or Zed. Open a folder for the project and use the editor's built-in terminal.
  - Verify: You can open a folder and run a command in its terminal
- [ ] **Git** · free
  - Why: History for your code, and the way most hosts deploy.
  - Get it: Install from git-scm.com or with your package manager, then run git init in the project folder once it exists.
  - Verify: git --version prints a version
- [ ] **A chat webhook URL (Discord, Slack or Telegram)** · free
  - Why: Alerts go to a chat channel you already watch. A webhook URL is the only credential this needs.
  - Get it: Discord: Server settings > Integrations > Webhooks > New Webhook, copy the URL. Slack: create an app at api.slack.com/apps, enable Incoming Webhooks, add to a channel, copy the URL. Telegram: create a bot with @BotFather and use the bot token plus your chat id.
  - Verify: curl -X POST -H 'Content-Type: application/json' -d '{"content":"test"}' <url> posts a message (Discord form; Slack uses a text field)
- [ ] **The jobs and how often each should check in** · free
  - Why: Interval plus grace per snitch.
  - Get it: crontab -l and a list.
- [ ] **A small always-on server (VPS)** (optional) · about $5 a month
  - Why: This needs one process running all the time with a public address. Separate from the jobs it watches.
  - Get it: Hetzner Cloud (from about 4 EUR), DigitalOcean or Fly.io. Ubuntu 24.04, the smallest size. You need SSH access and a public IP. Only needed for the deploy phase; develop locally first.
- [ ] **Caddy on the server** (optional) · free
  - Why: Automatic HTTPS in front of the Node process. Without TLS the browser features this relies on (and your visitors' trust) do not work.
  - Get it: On the VPS: follow the install steps at caddyserver.com/docs/install for Ubuntu. One Caddyfile with your domain and a reverse_proxy line is the whole config.
  - Verify: caddy version prints a version on the server

## Quick start

```sh
mkdir snitch && cd snitch && git init && npm init -y && npm pkg set type=module
mkdir -p data && cp .env.example .env
```

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Smart alerts that parse output, PagerDuty and Heroku integrations, team accounts.
- the off-box vantage point
- smart alerts and error-notice parsing
- the integrations (PagerDuty, Slack app, Heroku add-on)
- unlimited team members on one account

If one of those is essential to you, that is the reason to keep paying for Dead Man's Snitch, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

Because a monitor that lives on the same host as the jobs is silent exactly when the host is, and because the Heroku and PagerDuty plumbing is already done.

what you lose

xthe off-box vantage point

xsmart alerts and error-notice parsing

xthe integrations (PagerDuty, Slack app, Heroku add-on)

xunlimited team members on one account

prior art · use these instead of building, if you'd ratherhealthchecksopen-source equivalent with the same ping-URL model
share on X ↗"I just replaced Dead Man's Snitch ($19/mo) with one prompt"
the numbers

Dead Man's Snitch pricing

private eye$19/mo · monthly flat · $228/yr

free tierThe free Lone Snitch plan monitors exactly one job.

verified 2026-09-04 · source ↗

questions
Is Dead Man's Snitch free?

The free Lone Snitch plan monitors exactly one job. Paid is Private Eye at $19/mo (checked 2026-09-04).

Vibecode Dead Man's Snitch

Yes. A competent AI coding agent (Claude Code, Codex, Cursor) can build a usable personal Dead Man's Snitch replacement in one session with the prompt on this page. It runs on your own machine or server with no subscription.

How much does Dead Man's Snitch cost?

Dead Man's Snitch costs about $19/month (Private Eye, checked 2026-09-04), which is $228 per year. That's what you save by replacing it with one prompt.

What do I lose by replacing Dead Man's Snitch?

Honestly: the off-box vantage point; smart alerts and error-notice parsing; the integrations (PagerDuty, Slack app, Heroku add-on); unlimited team members on one account. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Dead Man's Snitch?

Yes: healthchecks (open-source equivalent with the same ping-URL model). Using prior art is also vibecoding; the prompt is for when you want it exactly your way.