Aeion Notification Engine vs SendGrid, Mailgun, Twilio

SendGrid charges $0-$0.10/1,000 emails. Twilio charges $0.0075-$0.04/SMS. Aeion Notification Engine routes through your provider but includes 24 built-in HTML templates, user preference management, quiet hours, frequency caps, and delivery tracking — all in one module, included free.

Head-to-Head Comparison

CapabilityAeion Notification EngineSendGridMailgunTwilio SMS
**Email pricing**$0 (your provider cost)$0-0.10/1K$0.005-0.08/1KN/A
**SMS pricing**$0 (Twilio cost)N/AN/A$0.0075-0.04/SMS
**Push notifications**Web + mobile (FCM/APNs)NoNoNo
**Email templates**24 built-in HTMLBasic templatesBasic templatesN/A
**HTML email engine**CSS-inlined responsiveTransactional templatesTemplatesN/A
**User preferences**Per-user opt-in/opt-out, quiet hoursNoNoNo
**Frequency caps**Per-user limits, digestNoNoNo
**Delivery tracking**Real-time logs (opened/clicked/bounced)
**Multi-channel fallback**Email → SMS → pushNoNoNo
**Event-driven triggers**24 built-in handlersWebhook + APIWebhook + APIWebhook + API
**Quiet hours**Timezone-aware routingNoNoNo
**Provider agnostic**✅ SendGrid/Mailgun/SES/SMTPN/AN/ASMS only
**Unsubscribe management**One-click GDPR compliantNo
**Channel routing**User preference awareNoNoNo

The Per-Message Pricing Trap

SendGrid pricing:

``` Free tier: 100 emails/day (limited) Essentials: $14.95/month + $0.10/1,000 emails Pro: $89.95/month + $0.05/1,000 emails Advanced: $249.95/month + $0.001/1,000 emails

At 50,000 transactional emails/month (Pro): = $89.95 + (50 × $0.05 × 1,000) = $89.95 + $2,500 = $2,589.95/month

At 500,000 transactional emails/month (Advanced): = $249.95 + (500 × $0.001 × 1,000) = $249.95 + $500 = $749.95/month ```

Twilio SMS pricing:

``` Standard SMS: $0.0075/message (US) Premium SMS: $0.04/message (with delivery receipts) Alphanumeric: $0.02/message

At 10,000 SMS/month: = $75-400/month

At 100,000 SMS/month: = $750-4,000/month ```

Aeion Notification Engine:

``` Module: $0 (included free) Email: You pay your provider (SendGrid/Mailgun/SES) → SendGrid Essentials: ~$0.10/1,000 = $50/month at 500K emails → Mailgun: ~$0.02/1,000 = $10/month at 500K emails SMS: You pay Twilio directly → $0.0075/message = $750/month at 100K SMS

Total: Your provider costs only. vs SendGrid Pro at 500K emails: $2,589.95/month Savings: ~$2,500/month just on email ```

Why pay SendGrid's platform fee on top of your provider costs?

24 Built-In HTML Templates vs SendGrid/Mailgun Basic Templates

SendGrid/Mailgun templates:

``` You get: basic template editor → Plain text with merge tags → No pre-built transactional templates → No HTML email design → No responsive CSS inlining → No preview text → You build everything from scratch

Every transactional email (welcome, order confirmation, password reset) → You write the HTML, CSS, responsive design, preview text → You handle the unsubscribe link → You handle the preference link → You handle the brand header/footer → You handle the CSS inlining for email clients ```

Aeion Notification Engine (built-in handlers):

``` You get: 24 complete HTML transactional templates → Fully responsive CSS (max-width: 580px) → CSS-inlined for email client compatibility → Preview text (hidden, mso-hide:all) → Brand header with configurable color → One-click unsubscribe link → Preference management link → Mobile-optimized layout → All variables rendered server-side

Built-in templates: auth.user.registered (welcome) auth.password.reset.requested (password reset) commerce.order.created (order confirmation) commerce.order.shipped (shipment notification) billing.payment.failed (payment failed) billing.subscription.renewing_soon (renewal reminder) billing.subscription.canceled (cancellation) helpdesk.ticket.resolved (CSAT survey) dining.reservation.confirmed (dining reservation) hospitality.reservation.confirmed (hotel reservation) recruit.interview.scheduled (interview confirmation) 14 more built in...

Each fires automatically on the corresponding event. No code needed. No template to write. ```

The template development cost:

``` Building one production-ready HTML email template: → Design: 4-8 hours → Responsive CSS: 2-4 hours → Testing (Gmail, Outlook, Apple Mail, etc.): 4-8 hours → CSS inlining: 1-2 hours → Variable interpolation: 1-2 hours → Preview text: 1 hour → Accessibility: 1 hour

Total: 14-28 hours per template

24 templates × 20 hours average = 480 hours = $24,000-48,000 (in developer time at $50-100/hour)

Aeion Notification Engine: $0 ```

User Preference Management — The Missing Piece

SendGrid/Mailgun:

``` They handle: email delivery They don't handle: user preferences

Your code must: → Build a preferences page → Store preferences in your DB → Check preferences before every send → Implement quiet hours → Implement frequency caps → Implement category unsubscribe → Handle SMS opt-out (TCPA compliance) → Handle double opt-in for marketing (GDPR)

That's: 200+ lines of code for a basic implementation 500+ lines for a proper GDPR/TCPA-compliant version

And: Every module must implement this separately → Commerce: does it check preferences? → CRM: does it check preferences? → Billing: does it check preferences? → If any module forgets → user gets unwanted notifications ```

Aeion Notification Engine (preference center):

```typescript // One place to configure: notificationService.send({ userId: "usr_abc", template: "order_shipped", data: { orderId: "12345" }, }); // → Checks user preferences automatically // → Respects quiet hours (timezone-aware) // → Respects frequency caps // → Respects category unsubscribe // → Consolidates excess into digest // → Bypasses quiet hours for urgent (payment.failed, sla.breached)

// User preference: { email: { enabled: true }, sms: { enabled: false }, categories: { order_updates: { enabled: true, channels: ["email"] }, marketing: { enabled: false }, // Opted out billing: { enabled: true, channels: ["email", "sms"] }, }, quietHours: { enabled: true, start: "22:00", end: "08:00", timezone: "America/New_York", allowUrgent: true }, frequencyCap: { maxPerHour: 3, maxPerDay: 10, consolidate: true }, } ```

Cross-module consistency: Every module that uses the Notification Engine respects the same preferences. No module can bypass them. Marketing module can't send to users who opted out. Billing can always send (security alerts bypass quiet hours).

Multi-Channel Fallback — The Smart Router

SendGrid/Mailgun:

``` You get: Email delivery only SMS: Use Twilio separately Push: Use Firebase separately

Your code must: → Route to email for marketing → Route to SMS for urgent alerts → Route to push for real-time → Handle channel failures (email bounced → try SMS) → Track delivery across channels → Maintain separate provider credentials

Problem: Channel fragmentation → 3 providers, 3 sets of credentials, 3 APIs → No unified preference management → No unified delivery tracking → No fallback logic ```

Aeion Notification Engine (unified send API):

```typescript // One API for all channels: await notificationService.send({ userId: "usr_abc", channels: ["email", "sms", "push"], // Try in order template: "payment_failed", data: { amount: 150.00 }, priority: "high", // Urgent → bypass quiet hours });

// → Check email preferences → send via configured email provider // → If email bounces → try SMS // → If SMS fails → try push // → If push fails → log failure

// All tracked in one place — the delivery log shows every channel attempt { notificationId: "not_abc123", userId: "usr_xyz", deliveries: [ { channel: "email", status: "bounced", reason: "mailbox_full" }, { channel: "sms", status: "delivered", messageId: "SMxxx" }, ] } ```

Priority routing:

```typescript // High priority (sla.breached, payment.failed): // → Bypass quiet hours // → Bypass frequency caps // → Immediate send, no queue

// Normal priority: // → Respect quiet hours // → Respect frequency caps // → Queue if over limits ```

Provider Agnostic — Use Your Preferred Provider

SendGrid: SendGrid only. Can't switch without code changes.

Mailgun: Mailgun only. Can't switch without code changes.

Aeion Notification Engine:

```typescript // Configure once, switch providers without code changes:

// SendGrid: { provider: "sendgrid", apiKey: "SG.xxx", fromEmail: "noreply@your-domain.com", }

// Switch to Mailgun: { provider: "mailgun", apiKey: "key-xxx", domain: "mg.your-domain.com", }

// Switch to SES: { provider: "ses", accessKeyId: "AKIA...", secretAccessKey: "...", region: "us-east-1", }

// Switch to SMTP: { provider: "smtp", host: "smtp.your-domain.com", port: 587, auth: { user: "...", pass: "..." }, }

// The send API abstracts all of this: // → No code changes when switching providers // → Same API, different backend // → Same delivery tracking format // → Same error handling ```

Why this matters:

  • Provider pricing changes → switch to cheaper option
  • Provider reliability issues → failover to another
  • Provider lock-in avoidance → negotiate better rates
  • Development flexibility → use development provider, switch for production

The True Cost Comparison

Cost FactorAeion Notification EngineSendGrid ProMailgun Pro
**Platform fee**$0$89.95/mo$35/mo
**Email cost (500K/mo)**$0 (Mailgun $10/mo)$2,500/mo$10/mo
**SMS cost (10K/mo)**$0 (Twilio $75/mo)N/AN/A
**Template development**$0 (24 built-in)DIY (~$24K one-time)DIY (~$24K one-time)
**Preference management**$0 (built-in)DIY (~$5K one-time)DIY (~$5K one-time)
**Channel fallback**$0 (built-in)DIY (~$3K one-time)DIY (~$3K one-time)
**Push notifications**$0 (built-in)❌ No❌ No
**At 500K emails/mo****$85/month****$2,590/month****$45/month**
**First year total****$1,020****$31,080****$540**

When SendGrid/Mailgun/Twilio Make Sense

Use SendGrid or Mailgun when:

  • You only send email (no SMS, no push)
  • You have a dedicated email delivery engineer to manage templates
  • You need SendGrid/Mailgun-specific features (advanced analytics, dedicated IPs)
  • You're already in their ecosystem and migration cost exceeds savings

Use Twilio for SMS when:

  • SMS is your primary notification channel
  • You need advanced SMS features (two-way messaging, MMS)
  • You have compliance requirements (TCPA) that need Twilio's tools

Use Aeion Notification Engine when:

  • You send across multiple channels (email, SMS, push)
  • You want built-in templates (saves 480+ hours of development)
  • You want unified preference management across all modules
  • You want provider agnostic architecture (no lock-in)
  • You run Aeion OS (it's included free)

Migration from SendGrid/Mailgun to Aeion:

```typescript // Before (SendGrid): const sg = require("@sendgrid/mail"); sg.setApiKey(process.env.SENDGRID_API_KEY); await sg.send({ to: user.email, from: "noreply@your-domain.com", templateId: "d-abc123", dynamicTemplateData: { userName, orderNumber }, });

// After (Aeion Notification Engine): await notificationService.send({ userId: user.id, template: "order_confirmation", data: { userName, orderNumber }, });

// Same result. Same tracking. Same unsubscribe. // But: preferences, quiet hours, frequency caps, multi-channel fallback all included. ```

Push Notifications — The SendGrid/Mailgun Gap

SendGrid and Mailgun: Email only. No push.

Aeion Notification Engine:

```typescript // Web push (FCM/Web-Push): await notificationService.send({ userId: "usr_abc", channel: "push", template: "order_shipped", data: { title: "Your order shipped!", body: "Order #12345 is on its way.", icon: "/icons/order-icon.png", tag: "order-update", data: { orderId: "12345", url: "/orders/12345" }, }, });

// Mobile push (FCM for Android, APNs for iOS): await notificationService.send({ userId: "usr_abc", channel: "push", platform: "ios", data: { title: "Time-sensitive alert", body: "Meeting starts in 5 minutes", badge: 1, sound: "default", priority: "high", }, });

// Push subscription management: await pushService.subscribe(userId, { endpoint: "https://fcm.googleapis.com/fcm/send/...", keys: { p256dh: "...", auth: "..." }, platform: "web", browser: "Chrome", }); ```

Why push matters:

  • Push typically has a higher open rate than email
  • Push is instant (no inbox competition)
  • Push works when user is offline (delivered to device)
  • Push enables re-engagement for inactive users

At 10,000 push notifications/month:

  • Firebase Cloud Messaging: Free (up to 500K/month)
  • vs SendGrid push: Not available
  • vs email: $0.10/1,000 = $1,000/month for 10K emails

Push is more cost-effective than email for time-sensitive notifications.

Frequently Asked Questions

Sits on top. You bring SendGrid, Mailgun, Resend, Postmark, AWS SES, or Twilio — Aeion is the orchestration + template + preference + audit layer. You're not locked to a single provider; switch ESPs without touching your application code. The per-email rate you pay is whatever your chosen provider charges; Aeion adds zero markup.

All channels through the same envelope. SMS via Twilio / AWS SNS / MessageBird, push via FCM / APNs, in-app banner native, webhooks signed with HMAC-SHA256. Same template authoring, same preference model, same audit log across channels. Define once, deliver across all.

Per-user, per-category, per-channel preferences. Categories ('Order updates', 'Promotional', 'Account alerts') are configurable; user-facing preference center is a drop-in component. Quiet hours + frequency caps + per-tenant override rules built in. Unsubscribe links include audit trail.

Both. MJML-based visual editor for marketing-team-owned templates, with versioning + A/B testing + rollback. Code-defined templates for transactional emails that engineering owns. Both share the same render pipeline + preview + delivery surface — no 'marketing has their own tool' silo.

Per-recipient + per-domain + per-campaign metrics: delivered / bounced (hard/soft) / opened / clicked / unsubscribed / complained. ISP feedback loops parsed automatically. Sender reputation scoring per domain. Quarantine for problematic recipients to protect deliverability. Same data the provider tracks, surfaced in the Aeion observability layer.

Multi-Channel Notifications — Built-In, Provider Agnostic