A modern, self-hosted email client powered by the JMAP protocol. Email, calendar, contacts — fast, private, and open source.
John Doe
john@example.com
Q4 Product Roadmap Review
Hi team, I've attached the updated roadmap for Q4. Please review the priorities and...
[webmail] New pull request #142
feat: Add calendar drag-and-drop rescheduling with snap to 15-minute intervals...
Re: Weekly standup notes
Thanks for sharing. I think we should also discuss the migration timeline in the next...
Your invoice is ready
Invoice #2026-0312 for $49.00 has been generated. View your invoice and payment...
Design system updates
Hey, I've pushed the new component library changes. Can you check the button...
noreply@github.com
To: john@example.com
Wed, Mar 11, 2026, 09:15 AM
4.2 KB
@devops-bot opened a new pull request:
feat: Add calendar drag-and-drop rescheduling
Adds the ability to reschedule calendar events via drag-and-drop with snap to 15-minute intervals. Includes undo support and optimistic UI updates.
Changes: 12 files changed, +847 −203
Reviews: 1 approval, 0 changes requested
You are receiving this because you are subscribed to this repository.
New email
Re: David Park — Design system updates
Read, compose, reply, reply-all, forward with threading, attachments, draft auto-save, virtual scrolling, color tags, and drag-and-drop organization.
JMAP Calendar (RFC 8984) with month, week, day, agenda views. Drag-and-drop rescheduling, resize, recurring events, iTIP invitations with RSVP from email.
Contact management with JMAP sync (RFC 9553/9610), vCard import/export, groups, autocomplete in composer, duplicate detection, and bulk operations.
Sarah Chen
sarah@acme.co
Alex Morgan
alex.m@corp.io
Sam Wilson
sam.w@dev.org
JMAP filter panel with search chips, cross-mailbox queries, and advanced filtering by sender, date, attachment and more.
JMAP EventSource for live updates. Instant unread counts, email arrival notifications, and connection status indicator.
New email from Sarah C.
just now
PR #847 comment added
2m ago
SPF/DKIM/DMARC indicators, external content blocking, DOMPurify sanitization, TOTP 2FA, OAuth2/OIDC with PKCE, and trusted senders list.
Multiple sender identities with per-identity signatures. Sub-addressing (user+tag@domain.com) with tag suggestions and identity badges.
Personal
alex@gmail.com
Work
alex@acme.co
Open Source
alex+oss@dev.io
Visual rule builder for server-side filtering (RFC 9661). Conditions, actions, raw Sieve editor with syntax validation, and drag reorder.
Reusable templates with placeholder variables, organized by category. Template picker in compose toolbar with search and filter.
JMAP VacationResponse with date range scheduling. Settings tab for message configuration and sidebar indicator when active.
Full keyboard navigation for power users. Navigate, compose, archive, delete, star — all without reaching for the mouse.
System-aware theming with smooth transitions. Three-pane layout with responsive design for desktop and mobile.
English, French, Japanese, Spanish, Italian, German, Dutch, Portuguese. Auto-detection with persistent preference.
Docker images on GHCR (amd64/arm64). Runtime env vars, health check endpoint, structured logging, and update check on startup.
â–Š
A polished interface designed for productivity.

See how Bulwark stacks up against other webmail clients and hosted providers.
| Feature | ★ This projectBulwark | Roundcube | Rainloop | SOGo | Gmail | Outlook |
|---|---|---|---|---|---|---|
| JMAP Native | ||||||
| Self-Hosted | ||||||
| Calendar | ||||||
| Contacts | ||||||
| Real-time Push | ||||||
| Dark Mode | ||||||
| i18n (8+ langs) | ||||||
| Modern Stack | ||||||
| Privacy First | ||||||
| Docker Deploy | ||||||
| Mobile App | ||||||
| Plugin Ecosystem | ||||||
| Offline Mode |
App Router with Turbopack
Type-safe codebase
Utility-first styling
Lightweight state management
RFC 8620 — native, not bridged
Internationalization for 8 languages
HTML sanitization for email safety
Beautiful, consistent iconography
Modern date utility library
No custom REST API between the browser and the mail server. JMAP is the API.
Browser
React + Zustand
JMAP Server
Email, Calendar, Contacts
Next.js API routes handle credential encryption (AES-256-GCM), httpOnly cookie management, and OAuth 2.0 PKCE token exchange. After auth, the browser talks JMAP directly.
Feature stores (email, calendar, contacts, sieve, etc.) are initialized conditionally based on server capabilities discovered via JMAP session.
One command to install. Or use Docker / build from source.
Bulwark is MIT-licensed and developed in the open. Bug reports, translations, and code contributions all happen on GitHub.
A modern webmail client built on the JMAP protocol
Everything you need to know about Bulwark.
Self-host your webmail with Stalwart. No tracking, no ads, no compromises.