novu
The open-source notification Inbox infrastructure. E-mail, SMS, Push and Slack Integrations.
Top Related Projects
💌 Build and send emails using React
Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬
🦔 PostHog provides open-source web & product analytics, session recording, feature flagging and A/B testing that you can self-host. Get started - free.
Open-source live customer chat
Simple, open source, lightweight and privacy-friendly web analytics alternative to Google Analytics.
Quick Overview
Novu is an open-source notification infrastructure for developers. It provides a unified API to send notifications across multiple channels like email, SMS, push, and chat. Novu aims to simplify the process of adding multi-channel notifications to applications.
Pros
- Unified API for multiple notification channels
- Customizable templates and workflows
- Supports various providers (e.g., SendGrid, Twilio, Slack)
- Self-hosted option available for data privacy
Cons
- Learning curve for complex notification workflows
- Limited native integrations compared to some commercial solutions
- Requires setup and maintenance for self-hosted deployments
- Community support may be less robust than enterprise alternatives
Code Examples
- Initializing the Novu client:
import { Novu } from '@novu/node';
const novu = new Novu('<YOUR_API_KEY>');
- Sending a simple notification:
await novu.trigger('event-name', {
to: {
subscriberId: 'user-id',
email: 'user@example.com'
},
payload: {
name: 'John Doe',
message: 'Hello from Novu!'
}
});
- Creating a notification template:
const template = await novu.notificationTemplates.create({
name: 'Welcome Email',
description: 'A welcome email for new users',
notificationGroupId: 'group-id',
steps: [
{
template: {
type: 'email',
subject: 'Welcome to our platform!',
content: 'Hi {{name}}, welcome to our platform!'
}
}
]
});
Getting Started
-
Install Novu:
npm install @novu/node
-
Initialize the Novu client:
import { Novu } from '@novu/node'; const novu = new Novu('<YOUR_API_KEY>');
-
Create a notification template in the Novu dashboard or via API.
-
Trigger a notification:
await novu.trigger('template-name', { to: { subscriberId: 'user-id' }, payload: { /* your data */ } });
Competitor Comparisons
💌 Build and send emails using React
Pros of React Email
- Focused specifically on email template creation using React components
- Lightweight and easy to integrate into existing React projects
- Provides a live preview feature for instant visual feedback
Cons of React Email
- Limited to email template creation, lacking full notification system functionality
- Smaller community and ecosystem compared to Novu
- Less comprehensive documentation and fewer integrations
Code Comparison
React Email:
import { Html } from '@react-email/html';
import { Text } from '@react-email/text';
export default function Email() {
return (
<Html>
<Text>Hello World</Text>
</Html>
);
}
Novu:
import { Novu } from '@novu/node';
const novu = new Novu('<YOUR_API_KEY>');
await novu.trigger('<TRIGGER_NAME>', {
to: {
subscriberId: '<SUBSCRIBER_ID>',
email: 'john@doemail.com',
},
payload: {
name: 'John Doe',
},
});
Summary
React Email is a lightweight solution for creating email templates using React components, offering easy integration and live preview. However, it lacks the comprehensive notification system features provided by Novu. Novu offers a more robust platform with multi-channel notifications, workflow management, and a larger ecosystem, but may be more complex to set up and use for simple email template needs.
Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬
Pros of Chatwoot
- More focused on customer support and live chat functionality
- Offers a user-friendly interface for managing customer conversations
- Includes features like canned responses and team collaboration tools
Cons of Chatwoot
- Limited in scope compared to Novu's broader notification capabilities
- May require additional integrations for comprehensive multi-channel notifications
- Less flexibility for developers looking to build custom notification systems
Code Comparison
Chatwoot (Ruby on Rails):
class ConversationsController < ApplicationController
def create
@conversation = Current.account.conversations.build(conversation_params)
@conversation.save!
render json: @conversation
end
end
Novu (Node.js):
export async function triggerEvent(data: ITriggerPayload) {
const { name, to, payload, overrides } = data;
const event = await getEventByName(name);
const subscriber = await getSubscriber(to);
await processSubscriber(event, subscriber, payload, overrides);
}
Both repositories offer open-source solutions for communication and notifications, but they serve different primary purposes. Chatwoot focuses on customer support and live chat, while Novu provides a more comprehensive notification infrastructure. The code examples highlight their different approaches, with Chatwoot using Ruby on Rails for web-based chat functionality and Novu utilizing Node.js for event-driven notifications.
🦔 PostHog provides open-source web & product analytics, session recording, feature flagging and A/B testing that you can self-host. Get started - free.
Pros of PostHog
- More comprehensive product analytics suite with features like session recording and feature flags
- Larger community and more active development (higher star count and commit frequency)
- Self-hosted option available for better data control and privacy
Cons of PostHog
- Steeper learning curve due to more complex features and integrations
- Higher resource requirements for self-hosted deployments
- May be overkill for projects only needing basic notification functionality
Code Comparison
PostHog (JavaScript snippet for tracking):
posthog.init('<ph_project_api_key>', { api_host: '<ph_instance_address>' })
posthog.capture('my event', { property: 'value' })
Novu (JavaScript snippet for notifications):
import { Novu } from '@novu/node';
const novu = new Novu('<api_key>');
await novu.trigger('<trigger_name>', { to: { subscriberId: '<id>' }, payload: {} });
Both repositories offer valuable tools for developers, but they serve different primary purposes. PostHog focuses on product analytics and user behavior tracking, while Novu specializes in notification infrastructure. The choice between them depends on the specific needs of your project, with PostHog being more suitable for comprehensive analytics and Novu for streamlined notification management.
Open-source live customer chat
Pros of Papercups
- Focused on customer chat and support, providing a more specialized solution for customer communication
- Offers a lightweight, easy-to-integrate widget for websites
- Built with Elixir, which can provide better performance and scalability for certain use cases
Cons of Papercups
- Limited to chat functionality, lacking the multi-channel notification capabilities of Novu
- Smaller community and ecosystem compared to Novu's more comprehensive platform
- Less extensive documentation and integration options
Code Comparison
Papercups (Elixir):
defmodule Papercups.Chat do
use Ecto.Schema
import Ecto.Changeset
schema "chats" do
field :status, :string
field :messages, {:array, :map}
timestamps()
end
end
Novu (TypeScript):
import { ChannelTypeEnum } from '@novu/shared';
export class Notification {
constructor(
public channelType: ChannelTypeEnum,
public content: string,
public recipient: string
) {}
}
The code snippets highlight the different focus areas of the two projects. Papercups' code relates to chat management, while Novu's code demonstrates its multi-channel notification capabilities.
Simple, open source, lightweight and privacy-friendly web analytics alternative to Google Analytics.
Pros of Plausible
- Lightweight and privacy-focused analytics solution
- Simple setup and easy-to-understand dashboard
- Open-source with a self-hosted option
Cons of Plausible
- Limited feature set compared to Novu's comprehensive notification system
- Focused solely on analytics, lacking multi-channel communication capabilities
- Smaller community and ecosystem
Code Comparison
Plausible (JavaScript snippet for website integration):
<script defer data-domain="yourdomain.com" src="https://plausible.io/js/plausible.js"></script>
Novu (Node.js example for sending a notification):
import { Novu } from '@novu/node';
const novu = new Novu('<YOUR_API_KEY>');
await novu.trigger('event-name', {
to: { subscriberId: 'user-id' },
payload: { name: 'John' }
});
While both projects are open-source, they serve different purposes. Plausible focuses on providing a privacy-friendly analytics solution, while Novu offers a comprehensive notification infrastructure. Plausible's code snippet is simpler due to its specific focus, whereas Novu's example demonstrates its flexibility in sending notifications across various channels. The choice between the two depends on whether you need analytics (Plausible) or a notification system (Novu).
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
The <Inbox /> infrastructure for modern products
Learn More »
Report a bug
·
Docs
·
Website
·
Join our Discord
·
Roadmap
·
X
·
Contact us
âï¸ Why Novu?
Novu provides a unified API that makes it simple to send notifications through multiple channels, including Inbox/In-App, Push, Email, SMS, and Chat. With Novu, you can create custom workflows and define conditions for each channel, ensuring that your notifications are delivered in the most effective way possible.
⨠Features
- Embeddable Inbox component with real-time support
- Single API for all messaging providers (Inbox/In-App, Email, SMS, Push, Chat)
- Digest Engine to combine multiple notification in to a single E-mail
- No-Code Block Editor for Email
- Notification Workflow Engine
- Embeddable user preferences component gives your subscribers control over their notifications
- Community-driven
ð Getting Started
Create a free account and follow the instructions on the dashboard.
ð Table of contents
Embeddable Inbox component
Using the Novu API and admin panel, you can easily add a real-time notification center to your web app without building it yourself. You can use our React, or build your own via our API and SDK. React native, Vue, and Angular are coming soon.

Read more about how to add a notification center Inbox to your app.
Providers
Novu provides a single API to manage providers across multiple channels with a simple-to-use API and UI interface.
ð Email
- Sendgrid
- Netcore
- Mailgun
- SES
- Postmark
- Custom SMTP
- Mailjet
- Mandrill
- Brevo (formerly SendinBlue)
- MailerSend
- Infobip
- Resend
- SparkPost
- Outlook 365
ð SMS
- Twilio
- Plivo
- SNS
- Nexmo - Vonage
- Sms77
- Telnyx
- Termii
- Gupshup
- SMS Central
- Maqsam
- 46elks
- Clickatell
- Burst SMS
- Firetext
- Infobip
- Bandwidth
- RingCentral
ð± Push
ð Chat
ð± In-App
ð Read Our Code Of Conduct
Before you begin coding and collaborating, please read our Code of Conduct thoroughly to understand the standards (that you are required to adhere to) for community engagement. As part of our open-source community, we hold ourselves and other contributors to a high standard of communication. As a participant and contributor to this project, you agree to abide by our Code of Conduct.
ð» Need Help?
We are more than happy to help you. If you are getting any errors or facing problems while working on this project, join our Discord server and ask for help. We are open to discussing anything related to the project.
ð Links
ð¡ï¸ License
Novu is a commercial open source company, which means some parts of this open source repository require a commercial license. The concept is called "Open Core," where the core technology is fully open source, licensed under MIT license, and the enterprise code is covered under a commercial license ("/enterprise" Enterprise Edition). Enterprise features are built by the core engineering team of Novu which is hired in full-time.
The following modules and folders are licensed under the enterprise license:
enterprise
folder at the root of the project and all of their subfolders and modulesapps/web/src/ee
folder and all of their subfolders and modulesapps/dashboard/src/ee
folder and all of their subfolders and modules
ðª Thanks to all of our contributors
Thanks a lot for spending your time helping Novu grow. Keep rocking ð¥
Top Related Projects
💌 Build and send emails using React
Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬
🦔 PostHog provides open-source web & product analytics, session recording, feature flagging and A/B testing that you can self-host. Get started - free.
Open-source live customer chat
Simple, open source, lightweight and privacy-friendly web analytics alternative to Google Analytics.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot