Alerts that finally break through notification noise.
Reliable push for on-call engineers. Delivered over APNs and FCM, native Alertmanager support, and infrastructure you can own.
About ten minutes to get running (no credit card required).

One webhook away from your phone.
We built a universal way to open and close incidents, inspired by Alertmanager, but not tied to it. Any system that can POST a webhook can fire and resolve the same way; the examples below show that flow.
route:
receiver: "handler"
receivers:
- name: "handler"
webhook_configs:
- url: "https://api.gethandler.app/api/v1/alertmanager"
send_resolved: truecurl -sS -X POST \
"https://api.gethandler.app/api/v1/universal/fire?token=YOUR_CHANNEL_TOKEN&user=YOUR_USER_KEY" \
-H "Content-Type: application/json" \
-d ''curl -sS -X POST \
"https://api.gethandler.app/api/v1/universal/resolve?token=YOUR_CHANNEL_TOKEN&user=YOUR_USER_KEY" \
-H "Content-Type: application/json" \
-d ''# .github/workflows/notify.yml — step run: |
curl -sS -X POST \
"https://api.gethandler.app/api/v1/universal/fire?token=${{ secrets.HANDLER_TOKEN }}&user=${{ secrets.HANDLER_USER }}" \
-H "Content-Type: application/json" \
-d ''# Same labels as fire so Handler matches the open alert
curl -sS -X POST \
"https://api.gethandler.app/api/v1/universal/resolve?token=${{ secrets.HANDLER_TOKEN }}&user=${{ secrets.HANDLER_USER }}" \
-H "Content-Type: application/json" \
-d ''# Jenkinsfile — sh """ … """
curl -sS -X POST \
"https://api.gethandler.app/api/v1/universal/fire?token=${HANDLER_TOKEN}&user=${HANDLER_USER}" \
-H "Content-Type: application/json" \
-d ''# Same labels as fire so Handler matches the open alert
curl -sS -X POST \
"https://api.gethandler.app/api/v1/universal/resolve?token=${HANDLER_TOKEN}&user=${HANDLER_USER}" \
-H "Content-Type: application/json" \
-d ''Features
What you get
We do not like landings that hide what the product really looks like. Let the screens below show Handler in full, so you can decide if it is for you.


Reliable Push Notifications
APNs and FCM with the app closed. Title, body, and priority on the lock screen.

Emergency
Priority 2. Retries until you acknowledge.

Global Mute & Alert Snooze
Mute everything for 5 minutes to several hours when you need a break.

Inbox
Every firing and resolved alert in one searchable stream.

Alert details with history
Labels, timeline, and push/ack history for every incident.

Quiet Hours
Scheduled silence for sounds. Alerts still hit Inbox; critical can override.

Live updates
Live app updates and cross-device sync. No pull to refresh.

Configurable sounds
Different tones for emergency, firing, and resolved.
Comparison
Compared to Slack, email, and SMS
Where Handler differs from the channels most teams already use for alerts.
| Capability | Handler | Slack | SMS | |
|---|---|---|---|---|
| Push via APNs & FCM | — | |||
| Emergency retry until ACK | — | — | — | |
| Native Alertmanager fire & resolve | — | — | — | |
| Inbox | ||||
| Active Alerts | — | — | — | |
| Alert detail with full history | — | — | — | |
| Rich notifications | — | — | — | |
| Customizable sounds & settings | — | — | — | |
| Customizable Quiet Hours | — | — | — | |
| Live / cross-device sync | — |
Frequently asked questions
Handler exists so important alerts can cut through everyday notification noise. Slack and Discord webhooks don't have that punch for on-call.
I built Handler from my own DevOps and homelab needs: easy to send, hard to miss on the phone.
