# nikoksr/notify

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nikoksr-notify).**

3,737 stars · 275 forks · Go · MIT

## Links

- GitHub: https://github.com/nikoksr/notify
- awesome-repositories: https://awesome-repositories.com/repository/nikoksr-notify.md

## Topics

`aws-ses` `bot` `discord` `email` `go` `golang` `hacktoberfest` `messaging` `microsoft-teams` `notification` `notify` `pushbullet` `rocketchat` `sendgrid` `slack` `telegram` `twilio` `twitter` `wechat` `whatsapp`

## Description

This is a Go notification library and multi-channel router used to send messages and alerts to multiple external messaging platforms through a single standardized interface. It functions as a cross-platform alerting bridge, routing internal application events to diverse destinations.

The project enables the simultaneous dispatch of a single notification across a collection of configured providers. It provides a unified interface for managing webhooks and API requests to third-party chat and alert services.

Supported delivery channels include Discord, Matrix, PagerDuty, and various mobile push services for iOS and web browsers. It also integrates with SMS, Reddit, Twitter, Viber, WeChat, and Lark. The library includes tools for managing network sessions, such as proxies and timeouts, and allows for the global toggling of notification delivery.

## Tags

### System Administration & Monitoring

- [Multi-Channel Notification Dispatch](https://awesome-repositories.com/f/system-administration-monitoring/notification-channels/notification-channel-configuration/multi-channel-notification-dispatch.md) — Provides a unified interface to dispatch a single notification across multiple messaging channels simultaneously.
- [Alert Routing](https://awesome-repositories.com/f/system-administration-monitoring/alert-routing.md) — Routes alerts to diverse destinations including Discord, Matrix, and PagerDuty based on configuration.
- [Multi-Channel Alerting](https://awesome-repositories.com/f/system-administration-monitoring/notification-channels/slack-notifications/email-alert-notifications/multi-channel-alerting.md) — Broadcasts notifications across a collection of different messaging services and email providers simultaneously.
- [Alerting Systems](https://awesome-repositories.com/f/system-administration-monitoring/alerting-and-incident-management/alerting-systems.md) — Integrates with alerting systems to route critical event notifications to services like PagerDuty and Discord.
- [Webhook Integrations](https://awesome-repositories.com/f/system-administration-monitoring/alerting-and-incident-management/alerting-systems/webhook-integrations.md) — Provides a unified interface for managing outbound HTTP webhooks to third-party chat and alert services.
- [SMS Notification Integrations](https://awesome-repositories.com/f/system-administration-monitoring/sms-notification-integrations.md) — Sends text message alerts to mobile phone numbers using third-party SMS gateways. ([source](https://github.com/nikoksr/notify/blob/main/service/twilio))

### Business & Productivity Software

- [Messaging Abstraction Layers](https://awesome-repositories.com/f/business-productivity-software/unified-messaging-interfaces/messaging-abstraction-layers.md) — Standardizes diverse service-specific message requirements into a consistent subject and body format.

### Networking & Communication

- [Messaging Platform Integrations](https://awesome-repositories.com/f/networking-communication/api-integration-frameworks/communication-apis/messaging-platform-integrations.md) — Connects the application to various chat apps and social media APIs for automated message delivery.
- [Notification Provider Integrations](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-automation/notification-provider-integrations.md) — Enables the definition and connection of multiple external messaging services using secure credentials. ([source](https://github.com/nikoksr/notify/blob/main/use_test.go))
- [Unified Notification Libraries](https://awesome-repositories.com/f/networking-communication/unified-notification-libraries.md) — Provides a standardized library interface for dispatching alerts across multiple messaging and push notification services.
- [Incident Notification Services](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-automation/incident-notification-services.md) — Triggers incident alerts in PagerDuty with specific urgency and priority levels via API. ([source](https://github.com/nikoksr/notify/blob/main/service/pagerduty))
- [Destination Mappings](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/destination-mappings.md) — Allows specifying exact chat IDs or email addresses for notification delivery across active services. ([source](https://github.com/nikoksr/notify/blob/main/README.md))
- [Operational State Toggles](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/push-notification-providers/operational-state-toggles.md) — Allows toggling the operational state of messaging providers to enable or disable notification delivery. ([source](https://github.com/nikoksr/notify/blob/main/notify_test.go))
- [Web Push Notifications](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/push-notification-providers/web-push-notifications.md) — Delivers secure messages to web browsers using the Web Push Protocol and VAPID. ([source](https://github.com/nikoksr/notify/blob/main/service/webpush))
- [HTTP Session Configurators](https://awesome-repositories.com/f/networking-communication/http-session-configurators.md) — Configures shared HTTP settings including timeouts and proxies to ensure consistent delivery across external APIs.
- [Network Behavior Configurators](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-configuration/network-behavior-configurators.md) — Manages HTTP proxy settings, timeouts, and retry logic to ensure reliable delivery of network requests. ([source](https://github.com/nikoksr/notify/blob/main/service/discord))

### Programming Languages & Runtimes

- [Notification Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/go-libraries/notification-libraries.md) — Implements a comprehensive Go library for sending messages to multiple external messaging platforms.

### Software Engineering & Architecture

- [Backend Registrations](https://awesome-repositories.com/f/software-engineering-architecture/declarative-configuration-managers/backend-resource-mapping/notification-backend-mappings/backend-registrations.md) — Provides the mechanism to register and configure multiple messaging backends for notification dispatch. ([source](https://github.com/nikoksr/notify/blob/main/send_test.go))
- [Provider Patterns](https://awesome-repositories.com/f/software-engineering-architecture/provider-patterns.md) — Utilizes a standardized provider pattern to allow different messaging services to be plugged into the delivery system.
- [Notification Backend Registrations](https://awesome-repositories.com/f/software-engineering-architecture/service-locators/dynamic-service-registrations/notification-backend-registrations.md) — Implements a registry to dynamically manage and activate various messaging backends at runtime.

### Part of an Awesome List

- [Push Notifications](https://awesome-repositories.com/f/awesome-lists/media/push-notifications.md) — Delivers automated alerts to mobile devices and web browsers using various push protocols.
