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

FeatureAppriseGotify
Mobile appNoAndroid (F-Droid + APK)
iOS supportVia target servicesNo native app (WebSocket PWA workaround)
Web UIConfig managerFull message inbox
Message storageNo (fire-and-forget)Yes (SQLite, persistent history)
Notification targets100+ servicesAndroid push + webhooks
REST APIYesYes
Per-application tokensNo (per-configuration)Yes (one token per app)
Message priority4 levels10 levels (0-10)
Markdown supportDepends on target serviceYes (in web UI and Android)
PluginsNoYes (server-side)
Docker containers11
RAM usage~50 MB~30 MB
LanguagePythonGo
LicenseBSD 2-ClauseMIT

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.