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.ymland 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
ChannelAdapterinterface 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.examplefile 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
| Criterion | Novu |
|---|---|
| Open Source | Full source code available; no vendor lock‑in. |
| Performance | Event‑driven architecture with Redis queues; low latency for real‑time inbox. |
| Flexibility | Declarative workflows, pluggable adapters, and SDKs for multiple languages. |
| **Licensing |
Open SourceReady to get started?
Join the community and start self-hosting Novu today
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
ntfy
Send push notifications via HTTP scripts
Weekly Views
Repository Health
Information
Explore More Apps
ArchivesSpace
Open‑source archives management for archivists
Manyfold
Self‑hosted 3D model library for printing
Varnish
High-performance HTTP reverse proxy and caching
Open Source Point of Sale
Web‑based POS with inventory, invoicing and multi‑currency support
LinkAce
Self-hosted bookmark archive and sharing tool
Gibbon
Open source school management for teachers, students, and parents