
Domains you prove and hold
A DNS checklist verifies your sending domain and mail-kit generates and holds the DKIM key, not a platform that can revoke it. Your sending identity stays yours.
Transactional email you own end to end. Your sending domains, your reputation, your logs, and the record of everything you ever sent. Send through whichever provider suits you today and switch when it stops suiting you, without handing any of that to a platform sitting in the middle of your customers and you.


A DNS checklist verifies your sending domain and mail-kit generates and holds the DKIM key, not a platform that can revoke it. Your sending identity stays yours.

Suppressed addresses are dropped, everything else is signed and queued, and if your code retries, the customer still gets one email, not two.

Bounces and complaints suppress automatically: per tenant and globally, and a send drops a suppressed address before the wire. No accidental re-sends, no list hidden inside “contacts”.

Delivered, bounced, complained, opened. Every event fans out to your endpoint as a signed, retried webhook. You get the truth about your mail, and it is verifiable.

It writes to your own database and sends over whichever provider you pick: Amazon SES, plain SMTP, or something else. There is no second service to run.

Domains, messages, suppressions and events are separated by customer, so one tenant’s mail history is never visible from another’s account.
Domains, messages, events, webhooks: everything mail-kit owns, on your database and your provider.
Add the DNS records it gives you. Your sending identity is now yours, and no platform can take it away.
One call with from, to, subject and body. Suppressed addresses are dropped, the rest are signed and sent, and a retry never sends twice.
Delivered, bounced, complained, opened: events update suppression and fire signed webhooks to whoever asked.
import { createMail } from '@quxkit/mail-kit';
// your database, your provider — SES, SMTP, or your own
const mail = createMail({ db: sql, transport: ses });
// a retry never sends twice
const message = await mail.send(tenantId, {
from: '[email protected]',
to: user.email,
subject: 'Welcome',
html,
idempotencyKey: signupId,
}); // checked, signed and on its wayA platform that owns your domain owns your deliverability. Hold the DKIM key yourself.