Multi-tenant email platform that handles domain provisioning, mailbox lifecycle, routing, and administration. Build whitelabel email products on top of a single, battle-tested engine.
# Provision a new tenant domain curl -X POST https://raven.koder.dev/v1/domains \ -H "Authorization: Bearer $TOKEN" \ -d '{ "domain": "acme.com", "tenant_id": "acme", "plan": "business", "mailboxes": [ {"local": "hello", "display": "ACME Support"}, {"local": "ceo", "display": "Jane Doe"} ] }' # Response { "domain": "acme.com", "status": "pending_verification", "dns_records": [ {"type": "MX", "value": "mx.raven.koder.dev"}, {"type": "TXT", "value": "raven-verify=a8f3..."} ], "mailboxes_created": 2 }
From a single mailbox to thousands of tenants, Raven scales with your business.
Register domains, generate DNS records (MX, SPF, DKIM, DMARC), and verify ownership — all via API. Zero manual DNS configuration for your customers.
Create, suspend, reactivate, and delete mailboxes programmatically. Set quotas, aliases, and forwarding rules per mailbox or per domain.
Each tenant gets isolated storage, routing, and credentials. Data never leaks between tenants, even on shared infrastructure.
Track storage, bandwidth, and message volume per tenant. Export metrics to your billing system or use built-in usage alerts.
Each tenant can customize login pages, email signatures, and webmail themes. Your customers see their brand, not yours.
REST and gRPC endpoints for every operation. Integrate Raven into your existing dashboard, CLI, or automation pipeline.
Every email operation is an API call away.
Full CRUD for mailboxes with quota enforcement, alias support, and auto-provisioning from your user database.
import "koder.dev/raven/sdk" client := raven.NewClient("https://raven.koder.dev") // Create a mailbox mb, _ := client.CreateMailbox(ctx, &raven.Mailbox{ TenantID: "acme", Local: "jane", Domain: "acme.com", Display: "Jane Doe", QuotaMB: 5120, }) // Suspend on billing failure client.SuspendMailbox(ctx, mb.ID)
Raven generates the required DNS records and polls for verification automatically. Your customers paste the records, Raven does the rest.
# Check domain verification status curl https://raven.koder.dev/v1/domains/acme.com/status { "domain": "acme.com", "verified": true, "checks": { "mx": "pass", "spf": "pass", "dkim": "pass", "dmarc": "pass" }, "verified_at": "2026-04-12T18:30:00Z" }
Raven orchestrates the mail stack so your product doesn't have to.
┌──────────────────────────────────────────────────┐
│ Your Product │
│ (Kmail, custom app, SaaS) │
└────────────────────┬─────────────────────────────┘
│ REST / gRPC
┌────────────────────▼─────────────────────────────┐
│ Raven │
│ ┌──────────┐ ┌──────────┐ ┌───────────────────┐ │
│ │ Domain │ │ Mailbox │ │ Tenant │ │
│ │ Service │ │ Service │ │ Manager │ │
│ └────┬─────┘ └────┬─────┘ └────────┬──────────┘ │
│ │ │ │ │
│ ┌────▼────────────▼────────────────▼──────────┐ │
│ │ kdb (storage) │ │
│ └─────────────────────────────────────────────┘ │
└────────────────────┬─────────────────────────────┘
│ JMAP / SMTP
┌────────────────────▼─────────────────────────────┐
│ Stalwart (MTA/MDA) │
│ SMTP + JMAP + IMAP + ManageSieve │
└──────────────────────────────────────────────────┘
Raven vs common email infrastructure approaches.
| Feature | Raven | Postal | Mailcow | Postfix + Dovecot |
|---|---|---|---|---|
| Multi-tenant isolation | ✓ | — | — | — |
| Domain provisioning API | ✓ | — | ✓ | — |
| Mailbox lifecycle API | ✓ | — | ✓ | — |
| Usage metering | ✓ | ✓ | — | — |
| Whitelabel branding | ✓ | — | — | — |
| JMAP support | ✓ | — | — | — |
| gRPC + REST API | ✓ | ✓ | ✓ | — |
| Zero Docker dependency | ✓ | — | — | ✓ |
| Billing hooks | ✓ | — | — | — |
Ship your email product in days, not months.