DocumentationArchitecture overview
Architecture overview
How MailingCore fits in your stack — browser SDK, server API, and queues.
MailingCore is a hosted email API — not an MTA you run yourself. Your app calls our API; we handle delivery, tracking, and deliverability.
Three integration surfaces
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Browser / SPA │────▶│ mailingcore-js │────▶│ MailingCore API│
│ (contact form) │ │ (SDK) │ │ │
└─────────────────┘ └──────────────────┘ └────────┬────────┘
│
┌─────────────────┐ ┌──────────────────┐ │
│ Your backend │────▶│ REST + API key │──────────────┘
│ (Node, PHP…) │ │ mc_live_/test_ │
└─────────────────┘ └──────────────────┘
│
┌─────────────────┐ ▼
│ Your team │──── JWT ────▶ Dashboard (templates, BullMQ queues
│ (operators) │ domains, analytics) → SES / SMTP
└─────────────────┘
When to use what
| Surface | Auth | Best for |
|---|---|---|
| JavaScript SDK | API key (mc_test_ in browser, mc_live_ server-side) | Contact forms, SPA welcome emails |
| REST API | API key + optional X-Tenant-Id | Backend integrations, batch, webhooks, campaigns |
| Dashboard | JWT session | Template editing, domain setup, analytics |
What MailingCore does
- Validates sender domain (SPF/DKIM/DMARC)
- Checks suppression list before send
- Enforces monthly quota
- Emits webhooks (
email.sent,email.bounced, …) - Stores send logs
What your app does
- Holds user data and business logic
- Chooses template + variables
- Handles webhook callbacks in your CRM
- Never stores SMTP credentials (MailingCore manages transport)
Next steps
- Environments — URLs and key prefixes
- Quickstart — first send in 5 minutes
- First domain checklist — before production