Webhook notifications,
straight to your phone.
A Firebase-powered notification bridge for long-running developer and AI-agent jobs. Send one POST request. Get one phone notification.
An alternative to Pushover, ntfy, Bark, Pushbullet, and Telegram-bot alerts.
Task finished — tests green
CI failed on main — 3 red
Scrape done — 38k pages
Stop babysitting long-running jobs.
You kick off a job and then keep flipping back to the terminal to see if it's done. NotifyMe ends the manual polling — the job tells you.
- Refreshing terminals and dashboards by hand.
- Noisy email and Slack threads you learn to ignore.
- Discord webhooks that bury the one alert that matters.
- Missing a failed deploy until someone else notices.
- One lightweight phone push per job, not a feed to scan.
- Color-coded by status so failures stand out instantly.
- Tap to jump straight to the run, log, or incident.
- Works anywhere a script can send an HTTP POST.
Built for the jobs you already run
One POST in, one push out.
No agents to install, no polling. The whole pipeline is four hops from your script to your lock screen.
POST webhook
Your script hits your personal webhook URL with a small JSON body.
Firebase Function
A Cloud Function validates the payload and resolves your token.
Firestore + FCM
The notification is persisted, then pushed via Cloud Messaging.
Phone notification
It lands on your phone. Tap it to open the detail or linked URL.
{
"title": "Build passed",
"message": "main is green — deploy queued",
"category": "github",
"status": "success",
"url": "https://github.com/acme/app/actions"
}title + message are the body · status maps to a color (closed set) · category organizes the inbox · url makes it tappable.
Everything the inbox needs, nothing it doesn't.
A focused notification app — not another dashboard to babysit.
Personal webhook URL
Every user gets one unguessable POST endpoint. No app keys to juggle.
Push via FCM
Delivered straight to your phone through Firebase Cloud Messaging.
Inbox grouped by day
A paged notification feed, organized so the latest is always on top.
Status colors
A closed set — success, error, warning, info — each maps to a color.
Search & read state
Find any alert and track what you've already seen.
Tappable URLs
Attach a url and the notification deep-links straight to the source.
Bookmarks
Star the alerts worth keeping; they stay in a dedicated list.
Statuspage support
Nested Atlassian Statuspage payloads are normalized automatically.
Self-hosted Firebase
Deploys into your own project. No central server, no shared data.
A push for every moment you'd otherwise check manually.
Claude Code completed the migration task
build #482 broke on main — 3 tests red
Lead-sync processed 1,204 records
Scrape job finished — 38k pages indexed
Anthropic: elevated errors on Claude API
vps-01 disk usage crossed 90%
Your Firebase project. Your notifications.
NotifyMe is open source and runs entirely on infrastructure you control. Clone it, deploy it, own it.
No central server
There's no NotifyMe backend to trust. Nothing routes through us.
No hardcoded project IDs
The stack reads your own Firebase config. Nothing is pinned to us.
Your Firebase project
Deploy the Cloud Function and Firestore rules into your own account.
Notifications stay private
Data lives in your Firestore, scoped to your authenticated user.
Copy, paste, get notified.
The same contract everywhere. Set NOTIFYME_URL to your personal webhook and drop one of these into your workflow.
The whole contract is one POST. Trap errors and notify on both outcomes — the status color reflects how the job ended.
#!/usr/bin/env bash
set -euo pipefail
notify() { # notify <status> <title> <message> [url]
curl -fsS -X POST "$NOTIFYME_URL" \
-H "Content-Type: application/json" \
-d "$(jq -n \
--arg t "$2" --arg m "$3" --arg s "$1" --arg u "${4:-}" \
'{title:$t, message:$m, category:"cron", status:$s, url:$u}')" \
>/dev/null || echo "notifyme: send failed" >&2
}
trap 'notify error "Backup failed" "Exited at line $LINENO"' ERR
# ---- your long-running job ----
pg_dump app | gzip > /backups/app.sql.gz
# -------------------------------
notify success "Backup complete" "Nightly snapshot finished in 4m12s"NOTIFYME_URL looks like https://us-central1-YOUR_PROJECT.cloudfunctions.net/webhook/YOUR_TOKEN — your own Cloud Function endpoint with your routing token.
Wire NotifyMe into your stack.
Notify me when Claude Code finishes a task
Fire a phone notification from a Claude Code Stop hook so you can step away from the terminal during long agent runs.
Send GitHub Actions failures to your phone
Add a conditional notify step to any workflow so a broken build reaches your phone before your teammates do.
Using NotifyMe with n8n workflows
Drop an HTTP Request node at the end of any n8n workflow to push a completion notification with live execution data.
Subscribe to Claude Statuspage incidents with NotifyMe
Point a Statuspage webhook at NotifyMe and get phone pushes when the services you depend on have an incident.