HTTP push without running the server.
ntfy is a good piece of software, and if you enjoy running your own infrastructure it is hard to argue with free and open source. Pocket Alert is the hosted version of the same idea: publish over HTTP, get a push on your phone, but with an account instead of a topic namespace, history that is kept rather than cached, and a record of every webhook call that comes in.
Where self-hosted push gets expensive
The friction is not in sending. It is in everything around it.
Someone has to run it
Self-hosting means uptime, TLS, upgrades and storage are yours. The shared instance comes with no delivery guarantee.
Nothing is kept
Messages live in the server cache and are dropped roughly 12 hours after delivery. There is no history to come back to.
No payload mapping
The publisher formats the message, so any service with its own payload shape needs a script sitting in between.
The topic is the password
On the public instance a topic is only as private as its name. Guessable topics are readable and writable by anyone.
Pocket Alert vs ntfy, feature by feature
Same publish-over-HTTP model, different amount of it left running on your machines.
| Feature | Pocket Alert | ntfy |
|---|---|---|
| Where you use it | ||
| iOS app | ||
| Android app | Play Store and F-Droid | |
| Web dashboard | Devices, keys, apps, webhooks | Web app |
| Chrome extension | Send a link or note to your phone | |
| Command-line tool | Official binary for Linux, macOS, Windows | ntfy CLI |
| MCP server for AI agents | 10 tools | |
| Sending alerts | ||
| Send via HTTP API | ||
| Inbound webhook URL per source | One URL per service | A topic URL accepts POST, without mapping |
| Payload mapping into the message | %field.path% into title, body and buttons | The publisher formats the message |
| Scheduled delivery | Up to 30 days, listable and cancellable | Delay up to 3 days |
| Priority levels | Five, silent to critical | Five, 1–5 |
| Critical alerts that override Do Not Disturb | On paid plans | Max priority, no DND override documented |
| Action buttons on the notification | Up to 3: open, HTTP request, copy | view, http, broadcast, copy |
| Attachments | Images | Any file, up to 1 GB on Business |
| Grouping by source | Applications, filtered in the app | Topics |
| Email delivery | Daily allowance per plan | |
| SMS or phone-call delivery | Phone calls on paid plans | |
| Records and debugging | ||
| Message history | Account-wide, synced to app and web | Server cache, ~12 hours |
| Webhook call log | Headers, payload, rendered message, result | |
| History retention | 7 days free, 365 on the top plan | Cache window only |
| Delivery statistics | Per application and per device | Server metrics if you self-host |
| Account and data | ||
| Content encryption | At rest with a per-account key, secrets redacted | Your own disk when self-hosted |
| Two-factor authentication | TOTP with recovery codes | Accounts and access tokens |
| Open source or self-hosted | Apache 2.0 / GPLv2 | |
ntfy data from ntfy.sh and docs.ntfy.sh, checked August 2026.
What you’ll pay
| Pocket Alert | ntfy | |
|---|---|---|
| Free plan | 50 messages a day, no card | Free on ntfy.sh without sign-up, or free forever self-hosted |
| Entry paid plan | $6/month — 1,000 messages a day, 5 webhooks | $6/month — 2,500 messages a day, 3 reserved topics |
| Highest tier | $25/month — unlimited messages, 365-day history | $25/month — 50,000 messages a day |
Pocket Alert pricing as of August 2026. ntfy figures from ntfy.sh and docs.ntfy.sh. See full pricing.
Coming from ntfy
Install and get a key
Install the app, sign in, and copy your API key from the dashboard.
Swap the endpoint
Replace the topic URL with the Pocket Alert endpoint and send the same JSON body.
Drop the glue scripts
For sources you were formatting by hand, create a webhook and map the raw payload with %field.path% instead.
Retire the instance
Shut down the server. Uptime, TLS renewals, upgrades and disk space stop being your problem.
Questions, answered
ntfy is an open-source pub-sub service you either self-host or use through the shared ntfy.sh instance. Pocket Alert is a hosted account-based service: you get an API key and webhook URLs, and there is no server, TLS certificate or storage to look after.
On ntfy, messages sit in the server cache and are dropped after about 12 hours. Pocket Alert keeps message history on the account, so the same list is in the app and in the dashboard, with delivery statistics beside it. Webhook calls are recorded separately for 7 to 365 days depending on plan.
On ntfy the publisher formats the message, so a service that emits its own JSON needs a script in between. A Pocket Alert webhook takes the raw payload and maps fields into the title and body with %field.path% placeholders, and the same placeholders can fill in an action button, so a Sentry alert arrives with a working link to that issue.
Both schedule. ntfy delays a message up to three days; Pocket Alert accepts an absolute time or a delay up to 30 days, lists what is pending, and cancels anything that has not fired yet.
On the public ntfy.sh instance the topic name is effectively the password, unless you pay for a reserved topic. Pocket Alert works the other way round: an account with API keys, optional two-factor authentication, and message content encrypted at rest with your own key.
Same HTTP push, none of the upkeep.
An account, an API key, and a webhook URL. Nothing to deploy, nothing to keep online.