# Pocket Alert vs Gotify

> Hosted Gotify alternative: push notifications to iPhone and Android with no server to run, no always-on connection, inbound webhooks with JSON mapping, action buttons and scheduling. Free tier.

<!-- source: https://pocketalert.app/alternatives/gotify -->

Last updated: 2026-10-10

Gotify is a clean self-hosted push server: one Go binary, a REST call to send, and every message stays on hardware you control. The trade is that you run it, and that the only official app is for Android. Pocket Alert is the hosted version of the same idea, with native iPhone and Android apps delivered through Apple and Google push, plus inbound webhooks, action buttons and scheduling that Gotify leaves to plugins or scripts.

## What running Gotify costs you

Sending is one curl call. Keeping it working is the part that takes the time.

- **You run the server** — Hosting, TLS, backups and upgrades are yours, and there is no hosted Gotify to fall back on. If the box is down, so are your alerts.
- **No official iPhone app** — The only official app is for Android. The community iGotify app needs another self-hosted service and a relay to reach Apple.
- **An always-on connection** — The Android app keeps a WebSocket open instead of using Google push, so it needs battery optimisation off and shows a permanent notification.
- **Webhooks need a plugin** — Gotify accepts only its own message format. GitHub or Grafana JSON needs a Go plugin built for your exact server version, or a script.

## Pocket Alert vs Gotify, feature by feature

Both send from one HTTP request. One runs on your server; the other runs on ours and on Apple and Google push.

### Where you use it

- **iOS app** — Pocket Alert: Yes; Gotify: No (Community app plus an extra relay)
- **Android app** — Pocket Alert: Yes; Gotify: Yes (Play Store and F-Droid)
- **Web dashboard** — Pocket Alert: Yes (Devices, keys, apps, webhooks); Gotify: Yes (Built-in web UI)
- **Chrome extension** — Pocket Alert: Yes (Send a link or note to your phone); Gotify: No
- **Command-line tool** — Pocket Alert: Yes (Official binary for Linux, macOS, Windows); Gotify: Yes (gotify/cli)
- **MCP server for AI agents** — Pocket Alert: Yes (10 tools); Gotify: No

### Sending alerts

- **Send via HTTP API** — Pocket Alert: Yes; Gotify: Yes (POST /message)
- **Inbound webhook URL per source** — Pocket Alert: Yes (One URL per service); Gotify: Partly (Via plugins, Linux and macOS only)
- **Payload mapping into the message** — Pocket Alert: Yes (%field.path% into title, body and buttons); Gotify: No (Go plugin or a script)
- **Scheduled delivery** — Pocket Alert: Yes (Up to 30 days, listable and cancellable); Gotify: No
- **Priority levels** — Pocket Alert: Yes (Five, silent to critical); Gotify: Yes (0–10, mapped to sound and vibration)
- **Critical alerts that override Do Not Disturb** — Pocket Alert: Yes (On paid plans); Gotify: No (No DND override documented)
- **Action buttons on the notification** — Pocket Alert: Yes (Up to 3: open, HTTP request, copy); Gotify: Partly (Click URL, no buttons)
- **Attachments** — Pocket Alert: Yes (Images); Gotify: Yes (Image by URL, via extras)
- **Grouping by source** — Pocket Alert: Yes (Applications, filtered in the app); Gotify: Yes (Applications)
- **Email delivery** — Pocket Alert: No; Gotify: No
- **SMS or phone-call delivery** — Pocket Alert: No; Gotify: No

### Records and debugging

- **Message history** — Pocket Alert: Yes (Account-wide, synced to app and web); Gotify: Yes (Stored on your server)
- **Webhook call log** — Pocket Alert: Yes (Headers, payload, rendered message, result); Gotify: No
- **History retention** — Pocket Alert: Yes (Messages until you delete them; webhook calls 7–365 days by plan); Gotify: Partly (Kept until deleted, no retention setting)
- **Delivery statistics** — Pocket Alert: Yes (Per application and per device); Gotify: No

### Account and data

- **Content encryption** — Pocket Alert: Yes (At rest with a per-account key, secrets redacted); Gotify: Partly (Your own disk; not documented)
- **Two-factor authentication** — Pocket Alert: Yes (TOTP with recovery codes); Gotify: Partly (Only through an OIDC provider)
- **Open source or self-hosted** — Pocket Alert: No; Gotify: Yes (MIT, Docker or a single binary)

Gotify data from gotify.net and the gotify/server (v3.1.1), gotify/android and gotify/cli repositories, checked October 2026.

## Pricing

- **Free plan** — Pocket Alert: 50 messages a day, no card; Gotify: Free and open source, on your own server
- **Entry paid plan** — Pocket Alert: $6/month — 1,000 messages a day, 5 webhooks; Gotify: No paid plans, and no hosted version
- **Highest tier** — Pocket Alert: $25/month — unlimited messages, 365-day history; Gotify: Costs your server, your domain and your time

Pocket Alert pricing as of October 2026. Gotify is free and has no hosted offering.

## Coming from Gotify

1. **Install and get a key** — Install the app on your iPhone or Android phone, sign in, and copy your API key from the dashboard.
2. **Swap the endpoint** — Point scripts at the Pocket Alert endpoint with the key in the Token header, and turn priority into level.
3. **Replace the plugins** — For each service behind a webhook plugin or bridge, create a Pocket Alert webhook and map its JSON with %field.path%.
4. **Retire the box** — Shut down the server, and turn battery optimisation back on for your phone.

### Before: Gotify

```bash
curl https://gotify.example.com/message \
  -H 'X-Gotify-Key: YOUR_APP_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Backup failed",
    "message": "nightly dump exited with code 1",
    "priority": 8
  }'
```

### After: Pocket Alert

```bash
curl https://api.pocketalert.app/v1/messages \
  -H 'Token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Backup failed",
    "message": "nightly dump exited with code 1",
    "level": "high"
  }'
```

## FAQ

### Is there a Gotify app for iPhone?

Not an official one. The Gotify Android app holds a WebSocket open to your server, which iOS does not allow in the background, and the project does not use third-party push services. The community iGotify app works around that with another self-hosted service that relays messages to Apple. Pocket Alert has native apps for iPhone and Android, delivered through Apple and Google push.

### Why does Gotify need battery optimisation turned off?

It keeps a permanent connection to your server instead of using Firebase Cloud Messaging, so Android would otherwise kill it, and it shows a permanent notification while it runs. Pocket Alert uses FCM on Android and APNs on iPhone, so the app does not need to stay awake to receive a push.

### Can services post their own JSON to it?

Gotify accepts only its own message format, so a GitHub or Grafana payload needs a Go plugin, built against your server’s exact Go version, or a script in between. A Pocket Alert webhook takes the raw payload, maps fields with `%field.path%` placeholders into the title, body and action buttons, and logs every call it receives.

### What do I give up by not self-hosting?

Control over where the data lives. With Gotify, messages sit in your own database. Pocket Alert keeps message history on its servers, encrypted at rest with a per-account key, and the account can be protected with two-factor authentication. If keeping data on your own hardware is a hard requirement, Gotify is the right tool.

### How do Gotify priorities map to Pocket Alert levels?

Gotify uses numbers from 0 to 10: 1–3 show an icon, 4–7 add sound, 8–10 add vibration. Pocket Alert has five named levels: silent, low, default, high and critical. A rough map is 0 to `silent`, 1–3 to `low`, 4–7 to `default` and 8–10 to `high`, with `critical` kept for alerts that should override Do Not Disturb on Android.
