Stalwart vs Maddy: Lightweight Email Servers
Quick Verdict
Stalwart is the better choice for most self-hosters because it includes a web admin interface, supports JMAP (modern email protocol), and has more active development. Maddy wins on resource usage — it’s the lightest email server available — and its single-binary simplicity is hard to beat.
Overview
Both Stalwart and Maddy are modern, all-in-one email servers that replace the traditional Postfix + Dovecot + OpenDKIM stack with a single process. Both are written in memory-safe languages (Stalwart in Rust, Maddy in Go), both support SMTP/IMAP, and both handle DKIM/SPF/DMARC natively.
| Stalwart | Maddy | |
|---|---|---|
| Language | Rust | Go |
| First release | 2022 | 2019 |
| Latest version | v0.11.8 | v0.8.2 |
| License | AGPL-3.0 (Enterprise tier available) | GPL-3.0 |
| GitHub stars | ~7,000+ | ~5,000+ |
| Docker image | stalwartlabs/mail-server | foxcpp/maddy |
Feature Comparison
| Feature | Stalwart | Maddy |
|---|---|---|
| SMTP (send/receive) | Yes | Yes |
| IMAP | Yes | Yes |
| JMAP | Yes | No |
| POP3 | Yes | No |
| Web admin UI | Yes | No (CLI only) |
| Built-in webmail | No | No |
| DKIM signing | Yes | Yes |
| SPF verification | Yes | Yes |
| DMARC enforcement | Yes | Yes |
| ARC (Authenticated Received Chain) | Yes | No |
| MTA-STS | Yes | Yes |
| DANE/TLSA | Yes | Yes |
| Spam filtering | SpamAssassin-compatible rules + ML | DNSBL + basic heuristics |
| Sieve filter support | Yes (RFC 5228) | Partial |
| Multi-domain | Yes | Yes |
| Virtual users | Yes | Yes |
| LDAP/Active Directory | Yes | Partial |
| OAuth2/OIDC | Yes | No |
| S3 storage backend | Yes | No |
| PostgreSQL backend | Yes (+ MySQL, SQLite) | Yes (+ SQLite) |
| Auto TLS (ACME) | Yes | Manual (certbot) |
| Clustering/HA | Yes (Enterprise) | No |
Installation Complexity
Both are single-container Docker deployments, which makes them significantly simpler than mailcow (15+ containers) or Mailu (8+ containers).
Stalwart:
services:
stalwart:
image: stalwartlabs/mail-server:v0.11.8
restart: unless-stopped
ports:
- "25:25"
- "465:465"
- "587:587"
- "993:993"
- "443:443" # Web admin UI
- "8080:8080" # HTTP API / JMAP
volumes:
- stalwart_data:/opt/stalwart-mail
Setup is via the web admin UI at port 443. Configuration is done through the browser — no config files to edit manually.
Maddy:
services:
maddy:
image: foxcpp/maddy:0.8.2
restart: unless-stopped
ports:
- "25:25"
- "465:465"
- "587:587"
- "993:993"
volumes:
- maddy_data:/data
- ./maddy.conf:/etc/maddy/maddy.conf:ro
Setup requires editing maddy.conf and managing users via maddy creds create CLI commands. No web interface for administration.
Winner: Stalwart. The web admin interface makes initial setup and ongoing management much easier.
Performance and Resource Usage
| Metric | Stalwart | Maddy |
|---|---|---|
| RAM (idle) | ~80-128 MB | ~30-50 MB |
| RAM (moderate load) | ~200-300 MB | ~100-150 MB |
| CPU (idle) | Very low | Very low |
| Docker image size | ~100 MB | ~30 MB |
| Disk (application) | ~100 MB | ~30 MB |
Maddy is 2-3x lighter than Stalwart on every metric. For a Raspberry Pi or a VPS with limited RAM, Maddy’s 30 MB idle footprint is remarkable.
Both are dramatically lighter than full-stack solutions:
| Server | Idle RAM |
|---|---|
| mailcow | ~1.5 GB |
| Mailu | ~512 MB |
| Docker Mailserver | ~512 MB |
| Stalwart | ~100 MB |
| Maddy | ~40 MB |
Winner: Maddy by a significant margin.
Community and Support
| Metric | Stalwart | Maddy |
|---|---|---|
| GitHub activity | Very active (weekly releases) | Moderate (monthly-quarterly) |
| Documentation | Comprehensive (stalw.art/docs) | Good (maddy.email) |
| Community | Growing (Discord, GitHub) | Smaller (GitHub) |
| Commercial support | Yes (Enterprise tier) | No |
| Release frequency | High (every 1-2 weeks) | Low (every few months) |
Stalwart has significantly more momentum. Its developer (Stalwart Labs) releases updates frequently and is expanding into enterprise features (clustering, S3 storage, OAuth2). Maddy’s development is slower but steady — the project is mature and stable.
Winner: Stalwart. More active development, larger community, commercial backing.
Use Cases
Choose Stalwart If…
- You want a web admin interface for managing users and settings
- You need JMAP support (modern email protocol, faster than IMAP for mobile)
- You want built-in ACME (automatic TLS certificates)
- You plan to scale to multiple domains with many users
- You want OAuth2/OIDC integration for single sign-on
- You need S3-compatible storage for email data
- Commercial support matters to you
Choose Maddy If…
- You’re running on a resource-constrained device (Raspberry Pi, 512 MB VPS)
- You prefer managing everything via config files and CLI
- You want the absolute simplest email server (single binary, single config file)
- You value software minimalism — fewer features means fewer things to break
- You don’t need JMAP, POP3, or a web interface
- You’re comfortable with Postfix/Dovecot-style configuration
Final Verdict
Stalwart is the better choice for most self-hosters. The web admin interface alone justifies the extra 50-80 MB of RAM. JMAP support future-proofs your setup. Automatic TLS certificate management removes a maintenance task. And the active development pace means bugs get fixed quickly and new features arrive regularly.
Choose Maddy if resource efficiency is your top priority or if you genuinely prefer CLI-only administration. Maddy is a technically elegant server that does email well with minimal overhead — but it requires more manual work for setup and management.
Both are vastly simpler than mailcow or Mailu. If you’re choosing between these two, you’re already on the right track for a lightweight, maintainable email setup.
FAQ
Can either replace a full mail stack like mailcow?
For basic email (SMTP, IMAP, spam filtering, DKIM), yes — both replace the entire Postfix + Dovecot + OpenDKIM stack in a single binary. What they lack compared to mailcow: webmail (SOGo), calendar/contacts (CalDAV/CardDAV), and ActiveSync for mobile. If you only need email and will use a separate client (Thunderbird, Apple Mail, K-9 Mail), both work well.
Does Maddy support JMAP?
No. Maddy supports SMTP and IMAP only. JMAP is a modern email protocol that provides faster synchronization and push notifications — useful for mobile clients. If JMAP support is important, choose Stalwart.
Can I run both on a Raspberry Pi?
Both are lightweight enough for a Raspberry Pi 4. Maddy’s 30-50 MB RAM footprint is remarkable — it leaves almost all RAM available for other services. Stalwart at 80-128 MB is still very light. For comparison, mailcow needs 4+ GB and does not support ARM at all.
Which has better spam filtering?
Stalwart has more advanced spam filtering — it supports SpamAssassin-compatible rules, DNS blocklists, and has experimental machine learning features. Maddy relies on DNSBL (DNS-based blocklists) and basic header/body heuristics. For heavy email traffic with sophisticated spam, Stalwart provides better protection. For light personal email, both are adequate.
Is Maddy still actively maintained?
Yes, but development is slower than Stalwart. Maddy releases updates every few months (v0.8.2 is the latest stable). The project is mature and stable — slower releases reflect stability rather than abandonment. Stalwart releases every 1-2 weeks with new features and fixes. If active development is important to you, Stalwart has significantly more momentum.
Can I use external storage with Stalwart?
Yes. Stalwart supports S3-compatible object storage for email data, PostgreSQL or MySQL for metadata, and local filesystem storage. This makes it suitable for larger deployments where you want to separate compute from storage. Maddy uses local filesystem storage only (SQLite or PostgreSQL for metadata).
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments