Apprise vs Gotify: Notification Tools Compared
Quick Verdict
Gotify is a self-hosted push notification server with persistent message storage and an Android app. Apprise is a notification relay that fans out messages to 100+ services. Gotify stores your notification history and delivers to your phone. Apprise routes alerts to Slack, Discord, Telegram, email, and dozens more — but stores nothing itself. Pick Gotify if you want a personal notification inbox. Pick Apprise if you need multi-platform routing.
Overview
Gotify is written in Go and runs as a single binary with a built-in web UI. It stores all messages in a SQLite database, organizes them by application/priority, and delivers push notifications to its Android app via WebSocket. Each application (Uptime Kuma, your backup script, etc.) gets its own API token and message stream.
Apprise is a Python-based notification aggregator with a REST API and web UI. You configure notification targets using URL-based syntax (one URL per service), and Apprise relays messages to all of them. It’s stateless — once a message is dispatched, Apprise doesn’t store it.
Feature Comparison
| Feature | Apprise | Gotify |
|---|---|---|
| Mobile app | No | Android (F-Droid + APK) |
| iOS support | Via target services | No native app (WebSocket PWA workaround) |
| Web UI | Config manager | Full message inbox |
| Message storage | No (fire-and-forget) | Yes (SQLite, persistent history) |
| Notification targets | 100+ services | Android push + webhooks |
| REST API | Yes | Yes |
| Per-application tokens | No (per-configuration) | Yes (one token per app) |
| Message priority | 4 levels | 10 levels (0-10) |
| Markdown support | Depends on target service | Yes (in web UI and Android) |
| Plugins | No | Yes (server-side) |
| Docker containers | 1 | 1 |
| RAM usage | ~50 MB | ~30 MB |
| Language | Python | Go |
| License | BSD 2-Clause | MIT |
Key Differences
Message Persistence
Gotify keeps every message in its database. You can scroll back through your notification history days, weeks, or months later. This matters if you use notifications as an audit trail — “when did that backup fail?” or “what time did the server go down?”
Apprise dispatches and forgets. If Slack was down when Apprise tried to send, that message is gone. Apprise has no retry queue, no message history, no audit trail.
iOS Support
This is Gotify’s biggest weakness. There’s no iOS app. The Gotify developer has stated that iOS push notifications require Apple’s APNs service, which means running a server that Apple approves — a non-trivial barrier for an open-source project. Workarounds exist (WebSocket clients, third-party apps), but nothing matches a native push experience.
Apprise sidesteps this by relying on target services that already have iOS apps. Configure Pushover, Telegram, or Ntfy as Apprise targets, and iOS users receive notifications through those apps.
Target Breadth
Apprise’s 100+ supported services is its killer feature. Need to notify Slack, Discord, Telegram, email, Microsoft Teams, Pushover, Gotify, Ntfy, Matrix, Mattermost, Rocket.Chat, PagerDuty, and a webhook endpoint — all from one API call? Apprise does that.
Gotify notifies Gotify clients (Android app, web UI) and can trigger downstream webhooks via plugins. That’s it. For multi-platform notification, you’d run Gotify behind Apprise.
Architecture
Gotify: Script → Gotify API → SQLite → WebSocket → Android App
→ Web UI
Apprise: Script → Apprise API → Slack webhook
→ Discord webhook
→ Telegram bot API
→ SMTP (email)
→ Gotify API
→ Ntfy API
→ (90+ more)
Use Cases
Choose Gotify If…
- You use Android and want native push notifications
- You want a searchable notification history
- You want per-application message streams (separate tokens for each service)
- You want a simple, focused notification server with minimal dependencies
- You’re the only person receiving notifications
Choose Apprise If…
- You need to notify multiple people on different platforms
- You need to reach iOS users (via Pushover, Telegram, or Ntfy as targets)
- You want one API endpoint that routes to everything
- You’re integrating with monitoring tools that support webhooks
- You want to centralize notification configuration in one place
Run Both Together
A common pattern: use Gotify as your personal notification inbox (searchable history, Android push) and Apprise as the routing layer that sends to Gotify plus other platforms.
# Apprise config: route to Gotify + team Slack
urls:
- "gotify://your-server/token"
- "slack://TokenA/TokenB/TokenC/Channel"
- "mailto://[email protected][email protected]"
This way you get persistent message history in Gotify AND multi-platform delivery through Apprise.
Final Verdict
Gotify is a personal notification inbox with an Android app. Apprise is a notification router for your entire infrastructure. They solve different problems and work well together. If you’re an Android user who wants a clean notification feed with history, start with Gotify. If you need to alert a team across multiple platforms, start with Apprise. For the most complete setup, run both.
Related
Get self-hosting tips in your inbox
New guides, comparisons, and setup tutorials — delivered weekly. No spam.