unsubbed.co

Prosody IM

Prosody IM gives you feature-rich and easy to configure XMPP server on your own infrastructure.

MIT Free prosody.im

Self-hosted messaging infrastructure, honestly reviewed. Not for everyone. Genuinely useful for the right use case.

TL;DR

  • What it is: A Jabber/XMPP server written in Lua. You run it on your own server; your team chats through any XMPP client app [website].
  • Who it’s for: Small companies, open-source projects, and technical founders who want a private messaging infrastructure they fully control, without paying Slack’s per-seat bill forever. Also the backbone of Jitsi Meet deployments [3].
  • Cost savings: Slack charges $7.25–$12.50/user/month. A 20-person team on Slack costs $1,740–$3,000/year. Prosody runs on a $5/mo VPS with no per-user pricing and no vendor lock-in [website].
  • Key strength: Genuinely lightweight. The entire server is written in Lua and designed to be efficient with system resources. As of 2020, Shodan detected 52,000+ public Prosody servers — 44% of all public XMPP infrastructure [3].
  • Key weakness: XMPP is not Slack. Your team has to install a client app, learn what federation means, and tolerate a protocol that most people haven’t touched since 2008. The setup curve is real, and the non-technical founder use case requires a technical person to deploy and maintain it.

What is Prosody IM

Prosody is an XMPP (also called Jabber) server — the piece of infrastructure that handles user accounts, message routing, group chats, and federation between servers [website]. If email has mail servers, XMPP has chat servers. Prosody is one of those chat servers.

The project describes itself as “a modern XMPP communication server” that “aims to be easy to set up and configure, and efficient with system resources” [website]. It’s written almost entirely in Lua — 48,358 lines of Lua code versus 2,613 lines of C as of 2020 [3] — which is an unusual choice that contributes directly to its lightweight footprint.

The license is MIT/X11, which the project website highlights explicitly: you can run it commercially, fork it, embed it in your own product, or build a hosted service on top of it without asking permission [website].

Prosody is not a product with a vendor dashboard, a SaaS tier, or a customer success team. It’s infrastructure software maintained by an independent open-source team. Releases are steady — the changelog on the homepage shows versions 13.0.0 through 13.0.4 released between March 2025 and January 2026, plus a separate 0.12.x branch that reached end-of-life in August 2024 [website]. The project is actively maintained and not abandoned, which is the first thing anyone should check before betting infrastructure on an open-source tool.

The name collision is worth addressing upfront: “Prosody” also refers to the study of poetic meter and rhythm in English literature [1][2]. If you search for Prosody IM reviews, a large fraction of what you find is poetry analysis. This is not a coincidence that favors the project’s SEO.


Why people choose it

Prosody’s position in the market is narrow but well-defined. It’s not trying to be Slack. It’s not trying to be Discord. It’s the implementation of a 20-year-old open protocol that, despite being declared dead every few years, keeps running significant infrastructure.

The clearest signal of real-world adoption is the Shodan data from the project’s own 2020 retrospective [3]: over 52,000 publicly accessible Prosody servers, accounting for 44% of the entire public XMPP federation. The Debian popularity contest showed a massive spike in Prosody installations in March 2020 — which the team attributes to the COVID-era surge in Jitsi Meet deployments, since Prosody is the authentication and signaling layer that Jitsi Meet runs on top of [3].

That last point is the most important practical context for this review: if you’ve used Jitsi Meet, you’ve used Prosody. The official Jitsi Meet logo appears on the Prosody homepage as a featured user alongside Snikket, JMP, Matrix, and Prose [website]. These aren’t vanity logos — Prosody is running actual production infrastructure for projects that handle millions of users.

There are three concrete reasons someone chooses Prosody over alternatives:

The protocol is federated and open. XMPP federation means your Prosody server can communicate with any other XMPP server, including public servers. You don’t have to convince your entire network to switch platforms. A person on your company’s Prosody server can chat with someone on a public Jabber.org account or another company’s server, the same way email works across providers [website]. Slack and Teams can’t do this. Your data is yours and your conversation partners don’t have to be on your vendor.

The resource footprint is unusually low. Lua is interpreted but extremely lightweight. A Prosody instance serving dozens of active users runs comfortably on a $5 VPS — the same hardware that would struggle under heavier Java-based alternatives. The 2020 codebase was 54,760 lines of code total [3], which is tiny for an XMPP server.

The module system is genuinely extensible. Prosody’s architecture is built around loadable modules, and there’s a prosody-modules community repository with hundreds of contributed plugins. If you need an XMPP feature that isn’t in the core, there’s a reasonable chance someone has already written a module for it.


Features

Based on the official website and documentation:

Core server:

  • User account management and authentication (SASL) [website]
  • Multi-user chat rooms (MUC) [website]
  • Server-to-server federation (s2s) [website]
  • TLS encryption for both client and server connections [website]
  • Offline message storage [website]
  • Presence and roster (contact list) management [website]
  • File transfer support via modules [website]
  • Push notification support [website]

Architecture:

  • Written in Lua — easy to extend with custom modules [website]
  • Configuration via a Lua-based config file [website]
  • Module loading/unloading without restart [website]
  • Community module repository (prosody-modules) for extensions not in core [website]

Integrations:

  • Jitsi Meet — Prosody handles authentication and signaling for the video conferencing layer [3]
  • Snikket — uses Prosody as its backend [website]
  • JMP — phone number-to-XMPP gateway built on Prosody [website]
  • Matrix bridge — via community modules [website]
  • Any XMPP-compatible client: Gajim, Conversations (Android), Monal (iOS), Dino, Beeper, and dozens more [website/doc]

What Prosody is not:

  • It has no built-in web UI for end users. Your team uses XMPP client applications.
  • It has no native voice/video — that layer comes from Jitsi Meet or other components.
  • It’s not a Slack clone with channels, threads, and integrations. It’s an XMPP server.

Pricing: SaaS vs self-hosted math

Prosody has no pricing tiers. The software is free under the MIT license. The only cost is the VPS.

Prosody self-hosted:

  • Software: $0 [website]
  • VPS (Hetzner CX22, 2 vCPU, 4GB RAM): $4.90/mo
  • Domain: ~$10–15/year
  • Your time to set it up

Slack for comparison:

  • Free: 90-day message history, 10 app integrations
  • Pro: $7.25/user/month (billed annually)
  • Business+: $12.50/user/month

Concrete math for a 20-person team:

OptionMonthlyAnnual
Slack Pro (20 users)$145/mo$1,740/yr
Slack Business+ (20 users)$250/mo$3,000/yr
Prosody self-hosted~$5/mo~$60/yr

Annual savings: $1,680–$2,940. For a 50-person team, the gap becomes $4,290–$7,440/year.

The catch is that this comparison is only fair if Prosody actually replaces Slack for your use case, which it may not. XMPP has no Slack-native thread view, no workflow automations, no first-party integrations with GitHub/Jira/etc. built in. If those features are load-bearing for your team, the savings math doesn’t apply.

For the narrower use case — a company that wants private, encrypted messaging for a technical team that doesn’t care about Slack’s feature surface — the economics are obvious.


Deployment reality check

The Prosody homepage claims “Have a great Jabber/XMPP server up in minutes” [website]. This is optimistic.

For a developer who has set up server software before, Prosody installs cleanly via package managers (Debian/Ubuntu repositories, available via apt). The configuration is a single Lua file. Getting a basic server running on localhost takes under 30 minutes if you know what you’re doing.

Getting a production-ready server with proper TLS, a domain, federation, and file transfer working is a different project — realistically 2–4 hours for someone competent with Linux administration. Things that require attention:

  • TLS certificates — Let’s Encrypt works, but the cert must cover both the main domain and the XMPP subdomains (conference.yourdomain.com, proxy.yourdomain.com, etc.) for full feature support.
  • DNS SRV records — XMPP federation relies on _xmpp-client._tcp and _xmpp-server._tcp DNS records pointing to your server. Miss these and client discovery breaks.
  • Firewall rules — ports 5222 (client-to-server), 5269 (server-to-server), and 5280/5281 (HTTP/HTTPS admin and BOSH) need to be open.
  • Client selection — your team needs an XMPP client app. Conversations is the standard Android client; Monal covers iOS; Gajim or Dino for desktop. None of them look like Slack.

The 2020 retrospective notes that Prosody “does not phone home in any way” [3], which is privacy-positive but means the project has no telemetry on how many users give up during setup. The Shodan numbers (52,000+ servers in 2020) suggest that enough people succeed to build a meaningful network, but there’s no data on the dropout rate.

For a non-technical founder: this is not a “deploy in an afternoon” project without help. You need someone who can edit a config file, run commands in a terminal, and debug DNS issues. If you have that person, the initial setup cost is a one-time investment. If you don’t, this isn’t the right tool regardless of the cost savings.


Pros and cons

Pros

  • MIT license with no commercial restrictions. Fork it, embed it, build a SaaS on it. No usage limits, no “Fair-code” gotchas, no vendor agreements [website].
  • Genuinely lightweight. Lua-based architecture means low RAM and CPU footprint. A $5 VPS handles dozens of concurrent users without strain [website][3].
  • 44% of the public XMPP network. Production-validated at scale. Jitsi Meet, Snikket, and JMP run on it [3][website].
  • Federated by design. Your server interoperates with any XMPP server, including public ones. You’re not building a walled garden [website].
  • Active maintenance. Five releases in the 13.0.x branch between March 2025 and January 2026 [website]. Not abandoned.
  • Extensible module system. Hundreds of community modules available for features not in core [website].
  • No per-user pricing. Add 200 users, pay the same $5/mo for the VPS. Slack charges per seat forever.

Cons

  • XMPP is not Slack. No threads, no built-in workflow automations, no app ecosystem comparable to Slack’s. If your team expects Slack, they’ll be disappointed.
  • Requires client apps. Users need to install and configure an XMPP client. There’s no browser-based interface bundled with Prosody. Onboarding non-technical users is friction.
  • No admin web UI in core. Managing users and rooms requires either command-line tools or third-party admin interfaces. Not beginner-friendly.
  • DNS and TLS setup is a real barrier. Getting federation and file transfer working requires correct DNS SRV records and wildcard-adjacent certificate coverage. First-time errors are common.
  • Limited independent review coverage. Because “Prosody” also means something in English literature, finding genuine third-party reviews of the software is harder than it should be. The signal-to-noise ratio in search results is bad [1][2].
  • No GitHub stars to reference. The project doesn’t appear to use GitHub as its primary repository, which removes a common social proof signal for evaluating open-source projects.
  • Small core team. The 2020 retrospective notes that “a couple of core team members are currently looking for freelance work” [3]. The project is not backed by a VC-funded company. This is both a feature (no commercial pressure to change the license) and a risk (key-person dependency).
  • XMPP protocol maturity cuts both ways. It’s stable and well-specified, but mobile XMPP clients historically struggle with push notifications and battery life compared to purpose-built apps like Signal or Slack. The protocol has improved significantly, but it’s not invisible.

Who should use this / who shouldn’t

Use Prosody if:

  • You’re running Jitsi Meet and need the signaling/authentication layer it expects. Prosody is effectively required here.
  • You’re building a product that needs federated messaging infrastructure and wants MIT-licensed server software you can embed or redistribute.
  • You have a technical team that already knows XMPP, or someone on staff who can deploy and maintain it.
  • You’re a privacy-focused organization that can’t send internal communications through US-based SaaS servers.
  • You’re paying Slack for a team that only uses basic messaging — no threads, no integrations, no Huddles — and you want the bill to stop.

Skip it if:

  • Your team’s productivity depends on Slack integrations, bots, and workflow automations. XMPP has no native equivalent of Slack’s app marketplace.
  • You need a no-code setup. Prosody requires terminal access and config file editing.
  • You want a self-hosted Slack replacement with a web UI. Look at Mattermost or Rocket.Chat instead — they’re heavier but closer to the Slack experience.
  • Your team is non-technical and you don’t have a DevOps person. The deployment friction is real.
  • You need mobile push notifications that work reliably without battery drain. XMPP push has improved, but it’s still rougher than native apps.

Alternatives worth considering

  • Ejabberd — the other major XMPP server. More enterprise-focused, better clustering support for large deployments, more opinionated about configuration. Choose ejabberd if you need horizontal scaling; choose Prosody if you need lightweight simplicity.
  • Openfire — Java-based XMPP server with a web admin UI. Heavier than Prosody but easier for non-technical admins to manage. Hasn’t innovated much in recent years.
  • Matrix / Synapse — a different protocol entirely, but solves the same problem (self-hosted team messaging). Better modern client apps (Element), better bridges to Slack/Discord/Teams, more complex to self-host. If you need bridges to commercial platforms, Matrix is the stronger choice. If you need pure XMPP federation, Prosody wins.
  • Mattermost — self-hosted Slack clone with a web interface, native mobile apps, and a recognizable UX. Not XMPP — proprietary protocol — but much closer to what Slack users expect. The free self-hosted tier has feature gaps; the paid tier starts at $10/user/month. Use this if your team needs the Slack experience without the Slack bill.
  • Rocket.Chat — similar position to Mattermost. More features out of the box (including voice/video), heavier resource requirements, more complex self-hosting. Choose Rocket.Chat if you want maximum feature parity with Slack. Choose Prosody if you want minimum resource footprint.
  • Signal — not self-hostable (the server is closed-source despite the client being open), but relevant if your use case is small-team secure messaging rather than company infrastructure.

Bottom line

Prosody is infrastructure software, not a product. It’s not trying to win a Slack comparison on features. It’s trying to be the correct, efficient, MIT-licensed implementation of a 20-year-old open standard that is still running 44% of the public federated messaging network [3]. For that purpose, it succeeds.

The target audience for this review is narrow but real: technical teams who need private messaging infrastructure, organizations running Jitsi Meet, and developers who want to build federated messaging into their own products without touching a commercial API or signing a vendor agreement. For those use cases, Prosody is the default choice and the Shodan numbers confirm it’s the choice most people have already made.

What Prosody is not, and makes no claim to be, is a Slack replacement for non-technical teams. If you need to migrate a marketing team off Slack, Prosody will frustrate everyone. If you need to run private messaging for a technical team or power a Jitsi deployment, it’s probably already on your server without you knowing it.

The savings math is real. The setup barrier is real. Weigh them honestly against your team’s technical capacity before deploying.


Sources

  1. Merriam-Webster Dictionary — “Prosody” definition (literary term, not the software). https://www.merriam-webster.com/dictionary/prosody
  2. Poem Analysis — “Prosody: Definition and Examples” (literary term, not the software). https://poemanalysis.com/literary-device/prosody
  3. The Prosody Team, Prosodical Thoughts (official blog)“How Prosody developers spent 2020” (2021-01-08). https://blog.prosody.im/2020-retrospective/

Primary sources: