// the find
binwiederhier/ntfy
Send push notifications to your phone or desktop using PUT/POST
ntfy is a pub-sub notification service that lets you send push notifications to phone or desktop via plain HTTP PUT/POST — no account needed for the hosted version, and trivially self-hostable. It's for developers who want a dead-simple way to get alerts out of scripts, cron jobs, CI pipelines, or any system that can make an HTTP request. The API is genuinely zero-friction: `curl -d 'backup done' ntfy.sh/my-topic` and your phone buzzes.
The HTTP API is as minimal as it gets — topics are just URL paths with no setup, no schemas, no registration required for basic use. Self-hosting is first-class: single Go binary, SQLite by default, Postgres available, Docker image provided, systemd unit included. The server supports both SSE and WebSocket for subscribers, which means you can subscribe from a browser with a single EventSource line or from any WebSocket client. Attachment support backed by either local filesystem or S3, with a clean interface abstraction — swapping backends doesn't touch the message layer.
Topics are public by default on ntfy.sh — anyone who guesses your topic name can read your notifications, so security is entirely the user's responsibility (access control requires self-hosting and configuration). The message cache is SQLite in the default path, which will become a bottleneck fast if you're self-hosting with high publish rates and many subscribers; the Postgres cache backend is there but you have to explicitly opt in. No end-to-end encryption — messages are stored and transmitted in plaintext, so it's not suitable for anything sensitive without wrapping it yourself. The web app is a React SPA that feels bolted on rather than integral — it covers the basics but the UX for managing multiple topics and access control is rougher than the CLI experience.