{{ c.alt_summary if alt else c.summary }}
Source: {{ c.price_source }}. Vendors change prices; the {{ c.name }} site is authoritative.
Flat monthly prices, no per-host, per-GB or per-run meters. Full plan matrix.
✓ included · ~ partial or paid add-on · ✕ not offered. {{ app_name }} figures are for the ${{ plans.pro.price }} Pro plan unless stated.
| {% if alt %} | {{ c.name }} | {{ app_name }} | {% else %}{{ app_name }} | {{ c.name }} | {% endif %}
|---|---|---|---|---|
| {{ label }} | {% if alt %}{{ cell(c.rows[key]) }} | {{ cell(vigil.rows[key]) }} | {% else %}{{ cell(vigil.rows[key]) }} | {{ cell(c.rows[key]) }} | {% endif %}
Small-team estimate uses public list prices and the cheapest tier that covers 3 servers, 50 monitors at 1-minute intervals and 5 people. Where a vendor meters by run, GB or hour we show the arithmetic so you can redo it with your own numbers.
{{ c.pick_them }}
List your {{ c.name }} monitors (their API or UI export). You need a name, URL or host, interval and the expected status or keyword for each.
Write them as {{ app_name }}'s YAML and apply with PUT /api/v1/config; the same endpoint exports everything back, so monitors can live in git. Or create them one by one through the REST API (monitors, incidents, maintenance, deploy markers).
Add Telegram, Slack, Discord, Teams, ntfy, Pushover, email or webhook channels; set escalation to a second channel set. Point your cron jobs at the new heartbeat URLs and install the server agent with one command.
Run both side by side during the trial: {{ app_name }}'s alert ingestion accepts Alertmanager and Grafana-style webhooks, so existing alerts can appear on a {{ app_name }} status page while you move over.
{{ a }}
Start free: 10-day Pro trial, no card. Everything you set up stays on the Free plan when the trial ends.
{% if alt %}{{ app_name }} vs {{ c.name }}{% else %}{{ c.name }} alternative{% endif %} · All comparisons: {% for o in others %}{{ o.name }}{% if not loop.last %} · {% endif %}{% endfor %}