ntfy vs Stalwart XMPP
| Tagline | Simple HTTP-based push notifications to phone and desktop, no account needed | Modern all-in-one XMPP server with web admin panel written in Rust |
| Category | Team Chat & Collaboration | Team Chat & Collaboration |
| Replaces | Slack, Microsoft Teams | Slack, Microsoft Teams |
| GitHub stars | 31k | 800 |
| Language | Go | Rust |
| License | Apache-2.0 | AGPL-3.0 |
| Self-host difficulty | 2/5 Easy | 2/5 Easy |
| Deploy options | Docker Docker Compose Manual | Docker Manual |
| Managed hosting | ||
| Last updated | 6 days ago | 1 month ago |
| View repo | View repo |
Where each falls short
The honest trade-offs — what you give up with each, versus the proprietary tools they replace.
ntfy
- No team chat, threading, or message history browsing; designed for one-way push alerts only.
- No rich message formatting, file sharing, or reactions.
- Rate limiting and attachment storage on the free public server are intentionally restrictive.
- iOS push requires routing through ntfy's own APNs proxy unless you self-compile the app.
Stalwart XMPP
- Younger project with a smaller community and less battle-tested than Prosody or Ejabberd
- No native web chat client included; users need a third-party XMPP app
- Clustering and high-availability support is still maturing
Bottom line
Both are a similar lift to self-host; choose ntfy for the larger community and ecosystem. ntfy has seen more recent development. Open each guide below for deploy steps and the full feature gap.