Skip to content

ADR 0007: Novu Cloud for Notifications

  • Status: Accepted
  • Date: 2026-04-14
  • Deciders: Ideony team

Ideony needs multi-channel notifications: email (booking confirmations), SMS (SOS dispatch), and Expo push (status updates). Managing three provider SDKs (Resend, Twilio, Expo Push) individually would require custom routing, retry, and template management logic.

Use Novu Cloud (EU region, eu.api.novu.co) as the notification orchestration layer. Novu routes to Resend (email, 3K/mo free), Twilio (SMS, SOS-only), and Expo Push. Six workflow templates are defined: booking-confirmed, booking-cancelled, sos-request, payment-received, review-prompt, service-reminder. Subscribers are synced on user creation via Clerk webhook.

  • Single SDK call triggers multi-channel delivery with template management in one place.
  • EU region satisfies GDPR data residency requirements.
  • Free tier (5K subscribers) covers MVP 0 user volume.
  • Novu handles retries, delivery tracking, and preference management out of the box.
  • Novu adds an external dependency for a core product feature (notifications).
  • EU region API endpoint differs from default (eu.api.novu.co not api.novu.co) — must be explicit in config.
  • service-reminder workflow uses Novu scheduled delivery (30 days before due date) — Novu scheduling model must be validated for long-duration triggers.
  • Direct Resend + Twilio + Expo Push — rejected: requires custom routing, retry logic, and template versioning; three SDKs to maintain.
  • SendGrid — rejected: email-only; no SMS or push orchestration.