← Back to home
Comparison · Comms

Converse.js vs Stalwart

A side-by-side editorial comparison of Converse.js and Stalwart — release velocity, themes, recent moves, and the top alternatives to consider.

Converse.js vs Stalwart: at a glance

FeatureConverse.jsStalwart
SectorCommsComms
Velocity score0.05.0
Sparks · 30d00
Top themesxmpp, omemo-encryption, e2e-usability, pubsub-apimail-server, jmap, email-authentication, standards-implementation
Last editorial update1h ago15h ago
WebsiteVisit →Visit →

What is Converse.js?

Converse.js 14 lands OMEMO:2 — the browser XMPP client catches up on modern encryption.

Converse.js reached 14.0.0 in June 2026 after a tight beta train, and the release is defined by one thing: support for OMEMO:2, the current revision of XMPP's end-to-end encryption. The surrounding work is all encryption ergonomics — per-chat encryption state remembered across chat-close and re-login, an explicit error surfaced for undecryptable messages instead of silently dropping them, the toggle hidden on untrusted devices, and original filenames preserved on encrypted image download. New PubSub API methods for create, subscribe and unsubscribe round out the release.

Read the full Converse.js trajectory →

What is Stalwart?

Stalwart keeps chasing standards nobody has implemented yet — DKIM2, DMARCbis, now JMAP email push.

Stalwart is a single-binary mail and collaboration server covering JMAP, IMAP, SMTP, CalDAV and CardDAV. The 0.16.x line ships roughly weekly and its additions cluster in one place: implementing IETF drafts and fresh RFCs ahead of the field, while a long tail of JMAP conformance and MTA edge-case fixes runs underneath. The latest release adds JMAP email delivery push notifications, completing a push stack built across the last three releases.

Read the full Stalwart trajectory →

Converse.js vs Stalwart: editorial side-by-side

C0.0

Converse.js 14 lands OMEMO:2 — the browser XMPP client catches up on modern encryption.

◆ Current state

Converse.js reached 14.0.0 in June 2026 after a tight beta train, and the release is defined by one thing: support for OMEMO:2, the current revision of XMPP's end-to-end encryption. The surrounding work is all encryption ergonomics — per-chat encryption state remembered across chat-close and re-login, an explicit error surfaced for undecryptable messages instead of silently dropping them, the toggle hidden on untrusted devices, and original filenames preserved on encrypted image download. New PubSub API methods for create, subscribe and unsubscribe round out the release.

◆ Where it's heading

The project is closing the gap between having encryption and having usable encryption. Almost every OMEMO change in this cycle is about failure modes users previously had to guess at: a silently dropped message, an encryption toggle offered where it cannot work, an abandoned bundle that never self-healed. That is the work a client does when its encryption is no longer a demo but something people depend on daily. Dropping client-compress for native browser APIs points the same way — fewer bundled dependencies in a security-sensitive path.

◆ Prediction

Expect the 14.x line to settle into interoperability fixes as OMEMO:2 meets other XMPP clients in the wild, with the new PubSub API the most likely base for the next feature layer.

S5.0

Stalwart keeps chasing standards nobody has implemented yet — DKIM2, DMARCbis, now JMAP email push.

◆ Current state

Stalwart is a single-binary mail and collaboration server covering JMAP, IMAP, SMTP, CalDAV and CardDAV. The 0.16.x line ships roughly weekly and its additions cluster in one place: implementing IETF drafts and fresh RFCs ahead of the field, while a long tail of JMAP conformance and MTA edge-case fixes runs underneath. The latest release adds JMAP email delivery push notifications, completing a push stack built across the last three releases.

◆ Where it's heading

The push story is the clearest arc: Web Push payload and subscription fixes in 0.16.10, VAPID per RFC 9749 in 0.16.14, and the emailpush draft in 0.16.16. Parallel to it, 0.16.12 landed DKIM2 and the DMARCbis trio, and the fix lists keep narrowing toward strict-spec behaviour — DMARC alignment reporting, SMTP line-length limits, BDAT error codes. Stalwart is positioning as the reference implementation of modern mail standards rather than competing on features.

◆ Prediction

Expect the JMAP push work to keep filling in — subscription lifecycle, delivery semantics — alongside continued DKIM2 and DMARCbis refinement as those drafts move. The fix cadence suggests operational hardening around clustering and Redis locking is the other near-term thread.

Alternatives to Converse.js and Stalwart

Other Comms products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either Converse.js or Stalwart.

See all Converse.js alternatives → · See all Stalwart alternatives →

Recent activity from Converse.js and Stalwart

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 21h agoStalwartv0.16.16 — JMAP email push, plus Redis lock and SMTP relay fixes
  2. 7d agoStalwartv0.16.15 — JMAP, MTA, and auth privilege fixes
  3. 14d agoStalwartv0.16.14 — VAPID Web Push plus push and calendar fixes
  4. 21d agoStalwartv0.16.13 — FreeBSD support and OAuth/JMAP fixes
  5. 28d agoStalwartv0.16.12 — DKIM2 and DMARCbis email-authentication support
  6. 1mo agoConverse.jsOMEMO:2 encryption support ships in Converse 14
  7. 1mo agoStalwartv0.16.11 — S/MIME encryption-at-rest and Redis Sentinel backend
  8. 1mo agoConverse.jsOMEMO bundle self-healing and new PubSub API methods
  9. 1mo agoConverse.jslibomemo.js dependency bump
  10. 1mo agoConverse.jsclient-compress replaced with native browser APIs
  11. 1mo agoConverse.jsFirst beta carrying the OMEMO usability fixes
  12. 2mo agoConverse.jsReaction attribution and MUC JID parsing fixes

Frequently asked questions

What is the difference between Converse.js and Stalwart?

They serve adjacent needs but don't currently overlap on shipped themes. Stalwart is currently shipping more aggressively (velocity 5.0 vs 0.0), with 0 editorial sparks in the last 30 days against 0. See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is Converse.js better than Stalwart?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. Stalwart is currently shipping more aggressively (velocity 5.0 vs 0.0), with 0 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other Comms products to evaluate alongside.

What are the best alternatives to Converse.js?

Top Converse.js alternatives in Comms are ranked by recent ship velocity. Browse the "Converse.js alternatives" section above for the current picks, or visit /alternatives/converse-js for the full list with editorial commentary on each.

What are the best alternatives to Stalwart?

Top Stalwart alternatives in Comms are ranked by recent ship velocity. Browse the "Stalwart alternatives" section above for the current picks, or visit /alternatives/stalwart for the full list with editorial commentary on each.