Vibecode Healthchecks.io

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

The server is open source and the protocol is a GET to a URL. A single-process monitor with a period, a grace time and one webhook covers the personal case in a sitting; the hosted product sells the alerting fan-out and not being on the same box as your jobs.

the project pack5 files · written for this build, step by step
README.md
# Healthchecks.io · indie build

A heartbeat monitor for cron jobs: each job pings a URL when it finishes, the monitor calls it late and then down when the pings stop, one chat message per state change, and a dashboard with a 24-hour histogram. Healthchecks.io itself is open source, so self-hosting it is the fuller answer; this is the 300-line version you understand completely.

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 | a ping is one INSERT; the loop is a timer |
| Database | SQLite in WAL mode | one file that never fails a ping because it is busy |
| Alerts | One chat webhook | the channel you already watch |
| Hosting | A VPS separate from the jobs | a monitor on the same host reports nothing when it dies |

## 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)
- [ ] **Your list of cron jobs with expected periods** · free
  - Why: Each check needs a period and a grace time; deciding them makes Phase 2 testable.
  - Get it: crontab -l on every machine; write down name, schedule and how late is too late.
- [ ] **A small always-on server (VPS)** (optional) · about $5 a month
  - Why: This needs one process running all the time with a public address. The monitor must live somewhere other than the machines running the jobs.
  - 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.
- [ ] **A domain or subdomain** (optional) · roughly $10 a year, or free on an existing domain
  - Why: Stable ping URLs that survive a server move.
  - Get it: Register at Cloudflare Registrar, Porkbun or Namecheap, or use a subdomain of one you already own. You add one DNS record in the deploy phase.
- [ ] **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 heartbeats && cd heartbeats && 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:

- SMS, WhatsApp and phone-call alerts.
- Teams, projects and the integrations catalogue.
- Being off your infrastructure by itself: put it on a different box.
- SMS, WhatsApp and phone-call alerts
- a monitor that lives off your infrastructure
- the integrations catalogue (PagerDuty, Opsgenie, Slack app)
- team accounts and project sharing

If one of those is essential to you, that is the reason to keep paying for Healthchecks.io, 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

A monitor on your own server dies with your server. People pay for the one box that is guaranteed to be somewhere else, and for the phone call when it matters.

what you lose

xSMS, WhatsApp and phone-call alerts

xa monitor that lives off your infrastructure

xthe integrations catalogue (PagerDuty, Opsgenie, Slack app)

xteam accounts and project sharing

prior art · use these instead of building, if you'd ratherhealthchecksthe hosted product is this, open source, self-hostable
share on X ↗"I just replaced Healthchecks.io ($20/mo) with one prompt"
the numbers

Healthchecks.io pricing

business$20/mo · monthly flat · $240/yr

free tierThe free Hobbyist plan covers 20 monitored jobs with 100 log entries each and no SMS or phone credits.

verified 2026-09-04 · source ↗

questions
Is Healthchecks.io free?

The free Hobbyist plan covers 20 monitored jobs with 100 log entries each and no SMS or phone credits. Paid is Business at $20/mo (checked 2026-09-04).

Vibecode Healthchecks.io

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

How much does Healthchecks.io cost?

Healthchecks.io costs about $20/month (Business, checked 2026-09-04), which is $240 per year. That's what you save by replacing it with one prompt.

What do I lose by replacing Healthchecks.io?

Honestly: SMS, WhatsApp and phone-call alerts; a monitor that lives off your infrastructure; the integrations catalogue (PagerDuty, Opsgenie, Slack app); team accounts and project sharing. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Healthchecks.io?

Yes: healthchecks (the hosted product is this, open source, self-hostable). Using prior art is also vibecoding; the prompt is for when you want it exactly your way.