MCPSERV.CLUB
Novu

Novu

Self-Hosted

Unified notification platform for multi‑channel delivery

Active(100)
38.0kstars
0views
Updated 1 day ago
Novu screenshot 1
1 / 2

Overview

Discover what makes Novu powerful

Novu is a self‑hosted notification platform that abstracts the complexity of multi‑channel delivery into a single, embeddable `<Inbox />` component. From a developer’s standpoint it acts as a **unified messaging hub**: a REST/GraphQL API that accepts notification payloads and routes them to the appropriate channel—email, SMS, push, chat or in‑app—in real time. The platform is built with modern cloud‑native principles: it runs as a set of Docker containers, scales horizontally behind a load balancer, and exposes a rich SDK for JavaScript/Node.js that can be dropped into any frontend framework.

Core Services

Workflow Engine

Adapters & Providers

Data Store

Overview

Novu is a self‑hosted notification platform that abstracts the complexity of multi‑channel delivery into a single, embeddable <Inbox /> component. From a developer’s standpoint it acts as a unified messaging hub: a REST/GraphQL API that accepts notification payloads and routes them to the appropriate channel—email, SMS, push, chat or in‑app—in real time. The platform is built with modern cloud‑native principles: it runs as a set of Docker containers, scales horizontally behind a load balancer, and exposes a rich SDK for JavaScript/Node.js that can be dropped into any frontend framework.

Architecture

  • Core Services – The heart of Novu is a Node.js/TypeScript microservice written with NestJS. It orchestrates workflows, evaluates conditions, and coordinates channel adapters.
  • Workflow Engine – A declarative engine that allows developers to define notification pipelines as JSON/YAML. The engine supports branching, retries, and digest aggregation.
  • Adapters & Providers – Each channel (SMTP, Twilio, Firebase Cloud Messaging, Slack, etc.) is implemented as a pluggable adapter that implements a common interface. This makes adding new providers trivial.
  • Data Store – PostgreSQL is the primary relational store for users, templates, and workflow definitions. Redis serves as a message broker (via BullMQ) for job queues and real‑time delivery.
  • Real‑Time Layer – WebSocket (via Socket.io) powers the <Inbox /> component, delivering notifications instantly without polling.
  • Containerization – The entire stack is distributed as Docker Compose or Helm charts, enabling Kubernetes deployments with minimal configuration.

Core Capabilities

  • Unified API – A single HTTP endpoint (/notifications) accepts a payload and an optional workflow ID, returning the status of each channel.
  • Workflow DSL – Define complex notification flows with conditions (if, switch), delays, and digests in a declarative JSON schema.
  • Template Engine – Handlebars‑based templating for email and in‑app messages, with support for dynamic data binding.
  • Inbox Component – React/Next.js/Vue wrappers expose an <Inbox /> UI that supports read/unread state, archiving, and filtering.
  • Webhooks & Callbacks – Notify external services when a notification is delivered, failed, or read.
  • Metrics & Logging – Prometheus metrics and structured logs (JSON) are exposed for observability.

Deployment & Infrastructure

  • Self‑Hosting – Deploy via Docker Compose, Kubernetes (Helm), or on any cloud VM. No external SaaS dependency.
  • Scalability – Horizontal scaling of the API and worker services is supported; Redis handles queuing at scale. PostgreSQL can be clustered for high availability.
  • CI/CD Friendly – GitHub Actions and Docker Hub integration allow automated image builds. The repository includes a sample docker-compose.yml and Helm chart for quick starts.
  • Resource Footprint – A single node can handle thousands of notifications per second with modest CPU (2 cores) and memory (4 GiB), but production clusters typically use 3–5 nodes for redundancy.

Integration & Extensibility

  • SDKs – Official npm packages (@novu/node, @novu/react) provide typed interfaces for server‑side and client‑side integration.
  • Plugin System – New channel adapters can be added by implementing the ChannelAdapter interface and registering them in the NestJS module registry.
  • Custom Templates – Developers can host their own templating engine or use the built‑in Handlebars, with support for custom helpers.
  • Event Hooks – Expose internal events (notification.sent, delivery.failed) via an event emitter, allowing downstream services to react.

Developer Experience

  • Documentation – Comprehensive docs cover API usage, workflow definition, and component integration. The API reference is auto‑generated from TypeScript types.
  • Community & Support – Active Discord channel, GitHub Discussions, and a public roadmap foster community contributions. Issues are triaged quickly.
  • Configuration – Environment variables control provider credentials, Redis/DB endpoints, and feature flags. A .env.example file is included.
  • Testing – The repo ships with unit and integration tests using Jest, ensuring that changes do not regress core behavior.

Use Cases

  • SaaS Products – Deliver onboarding, billing reminders, and feature updates across email, push, and in‑app channels with a single API call.
  • E‑Commerce – Send order confirmations, shipping updates, and promotional digests while maintaining a unified inbox for customers.
  • Enterprise Applications – Centralize alerts, compliance notifications, and internal communications with fine‑grained workflow control.
  • Mobile Apps – Embed the <Inbox /> component in React Native or Flutter (via a webview) to provide users with an in‑app notification center.

Advantages

CriterionNovu
Open SourceFull source code available; no vendor lock‑in.
PerformanceEvent‑driven architecture with Redis queues; low latency for real‑time inbox.
FlexibilityDeclarative workflows, pluggable adapters, and SDKs for multiple languages.
**Licensing

Open SourceReady to get started?

Join the community and start self-hosting Novu today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
apis-services
License
NOASSERTION
Stars
38.0k
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Docker
Official
Min RAM
1GB
Min Storage
5GB
Supported OS
LinuxDocker
Author
novuhq
novuhq
Last Updated
1 day ago