@stacksjs/notifications
v0.59.11
Published
The Stacks notifications integration.
Downloads
219
Maintainers
Readme
Stacks Notifications
Stacks Notifications is a unified driver system for sending messages/notifications. It supports sending emails, SMS messages, and chat messages.
☘️ Features
- 📦 Send Emails
- 🎨 Email Styling
- 📱 Send SMS messages
- 💬 Send Chat messages
TODO
- [ ] Driver: SNS (Push)
- [ ] Driver: Pushwoosh
🤖 Usage
bun install -d @stacksjs/notifications
Set these variables in your env:
NOTIFICATION_TYPE=email
NOTIFICATION_DRIVER=sendgrid
You may now use it in your project:
import { notification } from '@stacksjs/notifications'
notification.send(options)
🏎️ Drivers
There are different option types for Chat, Email, and SMS drivers. To use any driver, simply configure the notification options
object.
interface ChatOptions {
providerName?: 'discord' | 'slack'
webhookUrl: string
content: string
}
interface EmailOptions {
providerName?: 'sendgrid' | 'emailjs' | 'mailjet' | 'mandrill' | 'netcore' | 'nodemailer' | 'postmark' | 'ses'
to: string | string[]
subject: string
html: string
from?: string
text?: string
attachments?: AttachmentOptions[]
id?: string
}
interface SMSOptions {
providerName?: 'gupshup' | 'nexmo' | 'plivo' | 'sms77' | 'sns' | 'telnyx' | 'termii' | 'twilio'
to: string
content: string
from?: string
attachments?: AttachmentOptions[]
id?: string
}
Available drivers are listed below, with the proper variables needed to get started.
Email drivers are configured with the following environment variables:
Sendgrid
SENDGRID_API_KEY=SG123
[email protected]
SENDGRID_SENDER_NAME=Sender
Mailgun
MAILGUN_API_KEY=MG123
MAILGUN_DOMAIN=example.com
MAILGUN_USERNAME=username
[email protected]
Mailjet
MAILJET_API_KEY=MJ123
MAILJET_API_SECRET=MJTESTSECRET
[email protected]
Netcore
NETCORE_API_KEY=NC123
[email protected]
Nodemailer
[email protected]
NODEMAILER_HOST=example.com
NODEMAILER_USERNAME=username
NODEMAILER_PASSWORD=password
NODEMAILER_PORT=25
NODEMAILER_SECURE=true
Postmark
POSTMARK_API_KEY=PM123
[email protected]
AWS SES
SES_REGION=US
SES_ACCESS_KEY_ID=testkey123
SES_SECRET_ACCESS_KEY=testaccesskey123
[email protected]
Mandrill
MANDRILL_API_KEY=Ma123
[email protected]
EmailJS
[email protected]
EMAILJS_HOST=example.com
EMAILJS_USERNAME=username
EMAILJS_PASSWORD=password
EMAILJS_PORT=25
EMAILJS_SECURE=true
SMS
SMS drivers are configured with the following environment variables:
Twilio
TWILIO_ACCOUNT_SID=ACtest
TWILIO_AUTH_TOKEN=testtoken
TWILIO_FROM_NUMBER=+112345
TWILIO_TO_NUMBER=+145678
Nexmo
VONAGE_API_KEY=VN123
VONAGE_API_SECRET=testkey
VONAGE_FROM_NUMBER=+112345
Gupshup
GUPSHUP_USER_ID=GU123
GUPSHUP_PASSWORD=password
Plivo
PLIVO_ACCOUNT_ID=PA123
PLIVO_AUTH_TOKEN=testtoken
PLIVO_FROM_NUMBER=+112345
SMS77
SMS77_API_KEY=SA123
[email protected]
SNS
SMS77_API_KEY=SA123
[email protected]
Telnyx
TELNYX_API_KEY=TA123
TELNYX_MESSAGE_PROFILE_ID=testprofileid
[email protected]
Termii
TERMII_API_KEY=TermA123
[email protected]
Chat
Chat drivers are configured with the following environment variables:
Discord
- None
Slack
SLACK_APPLICATION_ID=SAID123
SLACK_CLIENT_ID=SCID123
SLACK_SECRET_KEY=SSK123
Learn more in the docs.
🧪 Testing
bun test
📈 Changelog
Please see our releases page for more information on what has changed recently.
🚜 Contributing
Please review the Contributing Guide for details.
🏝 Community
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
For casual chit-chat with others using this package:
Join the Stacks Discord Server
🙏🏼 Credits
Many thanks to the following core technologies & people who have contributed to this package:
📄 License
The MIT License (MIT). Please see LICENSE for more information.
Made with 💙