ntfy alternative
ntfy is free, open source, and self-hostable, and already has tap-to-fire action buttons. Paperplane trades that for a blocking agent ask, an alert lifecycle, and a ticket board.
ntfy is free, open source, self-hostable, and needs no account — for simple pub/sub notifications, use it. Paperplane costs money and requires sign-in, and earns that with a blocking ask for agents, a synced alert lifecycle, and a ticket board — not with action buttons, since ntfy has those too.
| Feature | Paperplane | ntfy |
|---|---|---|
| Price | $5/mo unlimited channels, 1 free | Free, open source |
| Self-hosting | Hosted only | Yes — one Docker container, or the free public ntfy.sh |
| Account required | Yes | No — a topic is just a string; auth is optional |
| Tap-to-fire action buttons | Yes, with a per-endpoint cooldown and full trigger history | Yes (view/http/broadcast actions), no cooldown or logged history |
| Blocking agent approval | Yes — an MCP agent blocks until you tap an option | No |
| Alert lifecycle | Open / acked / snoozed / resolved, synced across devices | No ack/resolve states |
| Ticket board | Yes, with alert linking | No |
| AI agent connector | paperplane-mcp | None |
ntfy gets more right than most alternatives on this list. It’s free, it’s open source, you can self-host it in one container or use the public instance, and — this is the one worth being upfront about — it already has action buttons: an http action fires a webhook when you tap the notification, the same shape as a Paperplane callback.
So the honest comparison isn’t “Paperplane has buttons and ntfy doesn’t.” It’s narrower: ntfy’s action doesn’t carry a cooldown or a logged trigger history the way a Paperplane callback does, and there’s nothing past that single tap — no lifecycle, no blocking question an agent can wait on, no shared board for the follow-up. If a topic needs an account-free, self-hosted pub/sub channel with a webhook button, ntfy already does that, for free.
What it doesn’t do is the part built for agents: paperplane_ask blocking a tool call until a human taps an option, with a token that can page you but can’t answer its own question. If that’s what you’re after, that gap is the whole reason to look at Paperplane instead.
See make your agent wait for how the blocking ask works.