Bulwark is a self-hosted webmail suite that speaks JMAP (RFC 8620) natively and pairs with Stalwart Mail Server. It bundles mail, calendar, contacts, and files behind a single login, along with a web-based setup wizard, OAuth2 / OIDC SSO, and an admin dashboard.
- Mail — Threaded conversations, unified inbox, full-text search, Sieve filters, S/MIME, templates, multiple identities
- Calendar — Month, week, day, and agenda views with drag-to-reschedule, recurring events, iMIP invitations, and CalDAV subscriptions
- Contacts — Multiple address books, groups, vCard import/export, and composer autocomplete
- Files — Stalwart's JMAP FileNode storage with previews and folder upload
- Setup wizard — First-launch web UI for JMAP, OAuth, branding, and admin credentials, with no
.env.localediting - Admin dashboard — Manage policy, users, plugins, themes, and audit logs from the browser
- SSO — OAuth2 / OIDC with PKCE and discovery, plus TOTP two-factor authentication
- Multi-account — HTTP/2 connection pooling across simultaneous JMAP sessions
- Plugins & themes — Bundled extensions plus a marketplace at extensions.bulwarkmail.org
- Internationalization — 24 languages, including right-to-left for Arabic, Hebrew, and Persian
- PWA — Installable on desktop and mobile, with dark and light themes that remap HTML email colors by luminance
- Real-time — Push notifications via JMAP EventSource
| Repository | Description |
|---|---|
| webmail | The Bulwark webmail application |
| native | Native desktop and mobile apps |
| legacy-proxy | IMAP/SMTP bridge for legacy mail clients |
| relay | Push notification relay for mobile clients |
| plugins | Example plugins and templates for the plugin API |
| themes | Theme bundles for the webmail |
| homeassistant-jmap | JMAP mail integration for Home Assistant |
| wordpress-jmap | WordPress plugin routing wp_mail() over JMAP |
| website | Website and documentation |
| branding | Logos and brand assets |
| dashboard | Internal observability stack for the org |
| Technology | Purpose |
|---|---|
| Next.js 16 | React framework (App Router) |
| TypeScript | Type safety |
| Tailwind CSS v4 | Styling |
| Zustand | State management |
| JMAP (RFC 8620) | Mail protocol |
| next-intl | Internationalization |
| Stalwart | Mail server |
docker run -d -p 3000:3000 ghcr.io/bulwarkmail/webmail:latestOpen http://localhost:3000 and the setup wizard handles the rest. Full instructions live in the documentation and the installation guide.
Bug reports, feature requests, translations, and code are all welcome. See CONTRIBUTING.md to get started, or come say hi on Discord.
Bulwark Webmail is released under the GNU AGPL v3. The fork lineage's original MIT attribution is preserved in NOTICE.