RecurPixel.Notify
A modular, DI-native NuGet notification library for ASP.NET Core. Drop it in. Bring your own API keys. Own your data.
✅ v0.3.0 STABLE — 39 packages across 14+ channels
Migrating from an older version? See the Migration Guide.
What It Is
RecurPixel.Notify is a pure .NET library — not a platform, not SaaS, no external dependency. It handles multi-channel notification delivery (Email, SMS, Push, WhatsApp, Slack, Discord, Teams, Mattermost, Rocket.Chat, Telegram, Facebook, LINE, Viber, In-App) through a single consistent interface.
You bring: your API keys, your message content. We handle: provider API calls, retry with exponential backoff, cross-channel fallback chains, parallel dispatch, delivery hooks, and optional delivery log dashboard.
Install
# Full SDK — everything included
dotnet add package RecurPixel.Notify.Sdk
# Or install only what you need
dotnet add package RecurPixel.Notify
dotnet add package RecurPixel.Notify.Email.SendGrid
dotnet add package RecurPixel.Notify.Sms.Twilio
See Usage Tiers to understand which option fits your use case.
Adapter Status
| Package | Provider | Channel | Unit Tested | Integration Tested | Community Approved |
|---|---|---|---|---|---|
Email.SendGrid |
Twilio SendGrid | ✅ | ✅ | 🔲 | |
Email.Smtp |
Any SMTP server | ✅ | ✅ | 🔲 | |
Email.Mailgun |
Mailgun | ✅ | 🔲 | 🔲 | |
Email.Resend |
Resend | ✅ | 🔲 | 🔲 | |
Email.Postmark |
Postmark | ✅ | 🔲 | 🔲 | |
Email.AwsSes |
AWS SES | ✅ | 🔲 | 🔲 | |
Email.AzureCommEmail |
Azure Communication Services | ✅ | 🔲 | 🔲 | |
Sms.Twilio |
Twilio | SMS | ✅ | ✅ | 🔲 |
Sms.Vonage |
Vonage (Nexmo) | SMS | ✅ | 🔲 | 🔲 |
Sms.Plivo |
Plivo | SMS | ✅ | 🔲 | 🔲 |
Sms.Sinch |
Sinch | SMS | ✅ | 🔲 | 🔲 |
Sms.MessageBird |
MessageBird | SMS | ✅ | 🔲 | 🔲 |
Sms.AwsSns |
AWS SNS | SMS | ✅ | 🔲 | 🔲 |
Sms.AzureCommSms |
Azure Communication Services | SMS | ✅ | 🔲 | 🔲 |
Sms.Msg91 |
MSG91 | SMS | ✅ | ✅ | 🔲 |
Push.Fcm |
Firebase Cloud Messaging | Push | ✅ | 🔲 | 🔲 |
Push.Apns |
Apple Push Notification Service | Push | ✅ | 🔲 | 🔲 |
Push.OneSignal |
OneSignal | Push | ✅ | 🔲 | 🔲 |
Push.Expo |
Expo Push | Push | ✅ | 🔲 | 🔲 |
WhatsApp.Twilio |
Twilio WhatsApp | ✅ | ✅ | 🔲 | |
WhatsApp.MetaCloud |
Meta Cloud API | ✅ | 🔲 | 🔲 | |
WhatsApp.Vonage |
Vonage WhatsApp | ✅ | 🔲 | 🔲 | |
WhatsApp.Msg91 |
MSG91 WhatsApp Business | ✅ | ✅ | 🔲 | |
Slack |
Slack Webhooks / Bot API | Team Chat | ✅ | ✅ | 🔲 |
Discord |
Discord Webhooks | Team Chat | ✅ | ✅ | 🔲 |
Teams |
Microsoft Teams Webhooks | Team Chat | ✅ | 🔲 | 🔲 |
Mattermost |
Mattermost Webhooks | Team Chat | ✅ | 🔲 | 🔲 |
RocketChat |
Rocket.Chat Webhooks | Team Chat | ✅ | 🔲 | 🔲 |
Facebook |
Meta Messenger API | Social | ✅ | 🔲 | 🔲 |
Telegram |
Telegram Bot API | Social | ✅ | ✅ | 🔲 |
Line |
LINE Messaging API | Social | ✅ | 🔲 | 🔲 |
Viber |
Viber Business Messages | Social | ✅ | 🔲 | 🔲 |
InApp |
Hook-based (user-defined storage) | In-App | ✅ | ✅ | 🔲 |
Legend: ✅ Complete · 🔲 Not yet · ⚠️ Partial
Package count: 39 (Core + Orchestrator + RecurPixel.Notify meta-package + 35 adapters + Dashboard + Dashboard.EfCore + Sdk)
Design Principles
- Zero infrastructure — pure library, no platform to host or sign up for
- Provider agnostic — swap Twilio for Vonage with a config change, nothing else breaks
- DI-native — registers via
AddRecurPixelNotify(), injected asINotifyService - Config agnostic — accepts
IConfiguration, options builder, or a raw POCO - Content agnostic — we deliver the payload, you build the subject and body
- Config-filtered registration — only adapters with credentials present get registered; unconfigured providers have zero DI footprint
- Pluggable observability —
OnDelivery()hook for user-owned logging, or drop inRecurPixel.Notify.Dashboardfor a zero-config delivery log with embedded UI
What’s New in v0.3.0
- Dashboard —
RecurPixel.Notify.Dashboard+RecurPixel.Notify.Dashboard.EfCore: delivery log UI, filterable table, batch drill-down, REST API, bring-your-own-store design - MSG91 Adapters —
RecurPixel.Notify.Sms.Msg91andRecurPixel.Notify.WhatsApp.Msg91 - Richer
NotifyResult— newEventName,BulkBatchId, andSubjectfields for full context inOnDeliveryhooks - 10 auto-registration fixes — Twilio credential isolation, FCM/AwsSns/AwsSes/AzureComm crash fixes, HTTP named clients with timeouts on all adapters
No breaking changes. All v0.2.0 code compiles and runs without modification.
Coming in v0.4.0
- Polly Resilience Hooks — expose
IHttpClientBuilderper adapter so you attach your own Polly policies - OpenTelemetry Integration — full distributed tracing via
ActivitySource - Additional Adapters — Kaleyra SMS, Gupshup WhatsApp, AiSensy WhatsApp
- Dashboard v2 — batch detail page, provider health indicators, CSV export
See the Roadmap for full details.
License
MIT — see LICENSE.