ntfy alternatives: what to use when self-hosting isn't the answer

July 20, 2026 · updated October 2026 · 6 min read

ntfy earns its popularity – open source, self-hostable, unlimited on your own box, and an excellent Android app. Two things still send people looking: the iOS story, and the fact that on ntfy.sh the topic name is the password. Here's the honest field, including when ntfy is simply the right answer.

What ntfy gets right

It's genuinely good software. Pub/sub over plain HTTP, so curl -d "Backup done" ntfy.sh/my-topic is the entire integration. The public server needs no account at all. Self-host it and you have unlimited volume with nothing leaving your network, under a permissive licence. The Android app is first-rate. If self-hosting is your goal rather than your obstacle, stop reading and use ntfy.

The three reasons people look elsewhere

1. iOS can't be fully self-hosted – and that surprises people

This is the big one, and it's worth being precise because it's widely misunderstood. Apple heavily restricts background processing, so instant push on iOS is impossible without a central server. ntfy's own documentation is upfront about it: a self-hosted server has to set upstream-base-url (normally pointing at https://ntfy.sh), which forwards a poll request upstream so that it can be relayed through Firebase and APNs to your iPhone. Your phone then fetches the real message from your own server.

Two consequences follow. First, the notification that appears is generic – the forwarded request carries only a message ID and a hashed topic name, so iOS shows "New message" rather than your text. Second, if you don't configure an upstream, the docs state plainly that delivery "can take hours, depending on the state of the phone".

So the person who self-hosted specifically to keep Big Tech out of the loop discovers that their iPhone notifications route through ntfy.sh, Firebase and Apple anyway. The data stays minimal, and that's a reasonable design given Apple's constraints – but it isn't the self-contained setup people expect.

2. On ntfy.sh, the topic name is the credential

Anyone who guesses or learns your topic name can post to it, and read it too, unless you reserve the topic on a paid plan or run your own instance with access control. For a backup-finished ping that's fine. For anything you'd rather not have strangers write into, it's a real consideration.

3. Running a server is work

Updates, TLS renewals, backups, a box that has to stay up. Great if you enjoy it. Overhead if you only wanted your phone to buzz when a cron job fails.

The alternatives, compared

Self-hostiOS deliveryAccount neededRaw webhook can POST directlyCost
ntfyYes Needs an upstream relay; generic textNo (hosted)Yes – body arrives as text Free self-hosted; ntfy.sh free tier rate-limited, paid from roughly $5/mo
WebhookyNoNative APNs, full textNoYes 100 notifications a month free, then €4.99/mo or €29.99/yr
PushoverNoNative APNs, full textYesNo – needs its API format $4.99 once per platform
GotifyYes (only)No official appYoursToken in the URL, so yes Free, open source
Apprisen/a – a libraryWhatever backend you point it atDependsNo – you call it from code Free, open source
Telegram botNoGoodYes + BotFatherNo – token & chat ID needed Free
Home Assistant companionYes (only)GoodYoursVia an automation Free

Third-party prices change; these reflect the providers' own pages at the time of the last update.

Still want self-hosting? Gotify or Home Assistant

If the reason you're leaving ntfy is not self-hosting, skip this. But if you're shopping around inside that category: Gotify is a tiny Go server that's even simpler to run, with the same iOS problem only worse – there is no official iOS app at all. If you already run Home Assistant, its companion app can push from an automation and you've got the infrastructure anyway. Apprise is a different shape: a Python library that speaks to 80+ notification backends, so it's what you reach for when you want one line of code to fan out to several services, not a destination in itself.

Want it to just work on iPhone? Pushover or Webhooky

Both are hosted and both deliver through native APNs, so an alert behaves like any other app's notification – full text on the lock screen, no relay, no "New message". Pushover charges $4.99 once per platform and has been around for over a decade; its catch is that senders must speak its API format, with token, user and message parameters.

Where Webhooky fits

Our tool, so weigh the table more than this section. It's a native app for iOS and Android delivering through APNs and FCM – the same path any messenger uses. No server and no account: install it and your endpoint URL exists, with a random 24-character key as the whole credential.

« ntfy »
curl -d "Backup done" ntfy.sh/my-secret-topic

« Webhooky »
curl -X POST https://api.webhooky.app/YOUR_KEY \
  -d '{"title":"✅ Backup done","sound":"level_up_2"}'

The differences that matter day to day: a structured title and message instead of a raw body dump, 40 sounds selectable per endpoint or per message, and webhook senders like Stripe, Shopify, GitHub or Etsy can post straight to the URL – unknown JSON falls back to the title and text you configured. The trade is the mirror image of ntfy's: you can't self-host it, and past 100 notifications it costs money.

When ntfy stays the better pick

If self-hosting is the point – data sovereignty, unlimited volume, Android as your main phone – ntfy is the right tool and nothing here beats it. It's also the only option on this list that's free, open source and genuinely yours. The case for leaving is narrow and specific: you're primarily on iPhone and want the actual message on your lock screen, or you never wanted a server to begin with. The full three-way breakdown with Pushover is here, and the wider field is in the best webhook notification apps.

Try Webhooky

100 free notifications every month, no account, endpoint ready in two minutes.

Get it on Google Play Download on the App Store

Frequently asked questions

Does ntfy work well on iOS?

It works, with caveats. Apple forbids persistent background connections, so a self-hosted ntfy must set upstream-base-url to relay poll requests through ntfy.sh, Firebase and APNs. The resulting notification shows a generic "New message" because only a message ID and hashed topic are forwarded. Without an upstream, ntfy's docs say delivery can take hours.

Can I self-host ntfy and keep iOS fully private?

Not for instant delivery. The upstream relay is required for timely iOS push, though it only carries a message ID and a hashed topic name – your phone then fetches the real content from your own server.

What is the best ntfy alternative for iPhone?

Pushover or Webhooky. Both deliver through native APNs with the full message text, and neither needs a server. Pushover is $4.99 once per platform; Webhooky gives you 100 free notifications a month and takes an arbitrary webhook payload directly.

Is there a self-hosted ntfy alternative?

Gotify is the closest – a small open-source push server, even simpler to run, but with no official iOS app. If you already run Home Assistant, its companion app can push from an automation.