OrdoNuntius (Latin: "messenger") is a modern, browser-based mail client for the Ordo ecosystem. It connects to OrdoEpistola (the mail server) via JMAP — the open IETF email protocol (RFC 8620) — and provides mail, calendar, contacts, and file management.
In the Ordo namespace:
- OrdoEpistola — the letter (the server that holds and routes messages)
- OrdoNuntius — the messenger (this client; what users open in a browser)
- OrdoDB — the substrate database underlying both
- OrdoAffine — Notion-style docs (sister project, independent)
This is an early Ordo adaptation of the upstream Bulwark Webmail project.
Most of the application is unchanged from upstream — the rebrand is Layer 1
(naming, package metadata, fork lineage, default app branding) only. Deeper
Ordo-ecosystem integration (OrdoEpistola x: JMAP extension support, shared
authentication with OrdoAffine, custom theming) is roadmap work.
If you're looking for production webmail today, the upstream Bulwark Webmail is the right place to start. This fork is for the Ordo ecosystem specifically.
- Framework: Next.js 16 (App Router, Turbopack)
- UI: React 19, Tailwind CSS 4, Radix UI primitives, Tiptap rich-text
- State: Zustand
- Protocol: JMAP (
jmap-client/ direct fetch via/jmapendpoint) - i18n: next-intl, 15 languages
- Crypto: pkijs (S/MIME), otpauth (TOTP 2FA)
- PWA: dynamic manifest, configurable theming
AGPL-3.0-only. See LICENSE. See NOTICE for full fork lineage including
upstream Bulwark (AGPL-3.0-only) and the earlier root-fr/jmap-webmail (MIT)
ancestor.
If you deploy OrdoNuntius as a public service to external users, AGPL requires you to publish source for any modifications you make. For internal-only deployments (single LLC, employees-only) the AGPL imposes no extra obligations beyond MIT/Apache.
OrdoNuntius is a fork of:
- Bulwark Webmail by the Bulwark Project Authors (rbm.systems). The vast majority of the code, design, and feature set is theirs. We've added the Ordo branding and ecosystem integration on top.
- root-fr/jmap-webmail by Matthieu MALVACHE (MIT), the earlier ancestor that Bulwark forked from.
# Install deps
npm install
# Run dev server (Turbopack)
npm run dev
# Point at your OrdoEpistola instance
# Edit .env.development with:
# APP_NAME=OrdoNuntius
# JMAP_SERVER_URL=https://mail.<your-domain>/jmapLayer 1 (done): Rebrand — package metadata, manifest defaults, README, NOTICE, fork lineage, Bulwark Docker packaging removed in favor of native systemd on EC2.
AWS launch (Salt & Light email-lab): Webmail co-located with OrdoEpistola
on the email-lab EC2 at mail.saltnlightllc.com. nginx terminates TLS and
routes JMAP/.well-known/dav/metrics to OrdoEpistola on loopback :8443;
everything else to the Next.js standalone server on :3000. See
infra/README.md for the deploy procedure and the
infra/runbooks/ for the nginx cutover and the
per-deploy canary checklist.
Layer 2: OrdoEpistola JMAP x: extension support — surface admin features unique to the OrdoEpistola fork (x:BlockedIp, x:Domain management, etc.).
Layer 3: Shared authentication with OrdoAffine via OAuth/OIDC; cross-app navigation.
Layer 4: Ordo-themed component library to standardize look-and-feel across the ecosystem.
CI: Local xtask runner — see xtask/README.md. Run
npm run xtask -- release to gate typecheck + lint + i18n + build + pack
locally, npm run xtask -- deploy email-lab to release and ship to the
email-lab EC2. No GitHub Actions — the shipping lane is operator-local.
For the upstream Bulwark Webmail documentation, features list, screenshots, and Docker deployment guide, see bulwarkmail/webmail. This project will track upstream where practical.