ntfy alternative

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.

Nothing to self-hostHistory that staysFree tier · 50 msg/day
Pocket AlertHosted · integrated · history
vs
ntfyOpen source · self-hosted or shared
The gap

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.

Feature comparison

Pocket Alert vs ntfy, feature by feature

Same publish-over-HTTP model, different amount of it left running on your machines.

FeaturePocket Alertntfy
Where you use it
iOS app
Android appPlay Store and F-Droid
Web dashboardDevices, keys, apps, webhooksWeb app
Chrome extensionSend a link or note to your phone
Command-line toolOfficial binary for Linux, macOS, Windowsntfy CLI
MCP server for AI agents10 tools
Sending alerts
Send via HTTP API
Inbound webhook URL per sourceOne URL per serviceA topic URL accepts POST, without mapping
Payload mapping into the message%field.path% into title, body and buttonsThe publisher formats the message
Scheduled deliveryUp to 30 days, listable and cancellableDelay up to 3 days
Priority levelsFive, silent to criticalFive, 1–5
Critical alerts that override Do Not DisturbOn paid plansMax priority, no DND override documented
Action buttons on the notificationUp to 3: open, HTTP request, copyview, http, broadcast, copy
AttachmentsImagesAny file, up to 1 GB on Business
Grouping by sourceApplications, filtered in the appTopics
Email deliveryDaily allowance per plan
SMS or phone-call deliveryPhone calls on paid plans
Records and debugging
Message historyAccount-wide, synced to app and webServer cache, ~12 hours
Webhook call logHeaders, payload, rendered message, result
History retention7 days free, 365 on the top planCache window only
Delivery statisticsPer application and per deviceServer metrics if you self-host
Account and data
Content encryptionAt rest with a per-account key, secrets redactedYour own disk when self-hosted
Two-factor authenticationTOTP with recovery codesAccounts and access tokens
Open source or self-hostedApache 2.0 / GPLv2

ntfy data from ntfy.sh and docs.ntfy.sh, checked August 2026.

Pricing

What you’ll pay

Pocket Alertntfy
Free plan50 messages a day, no cardFree 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.

Migration

Coming from ntfy

1

Install and get a key

Install the app, sign in, and copy your API key from the dashboard.

2

Swap the endpoint

Replace the topic URL with the Pocket Alert endpoint and send the same JSON body.

3

Drop the glue scripts

For sources you were formatting by hand, create a webhook and map the raw payload with %field.path% instead.

4

Retire the instance

Shut down the server. Uptime, TLS renewals, upgrades and disk space stop being your problem.

FAQ

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.