Novu
Open-source notification infrastructure for developers
Novu is a notification infrastructure platform that manages multi-channel messaging across email, SMS, push, chat, and in-app feeds from a single API and workflow editor. It is fully self-hostable.
Key features
- Multi-channel notifications
- Visual workflow editor
- In-app notification feed
- Provider-agnostic delivery
Pros & cons
Strengths
- Unified multi-channel API
- Visual workflow editor
- Ready-made UI components
Trade-offs
- Complex multi-service stack
- MongoDB and Redis required
Novu replaces
Last reviewed Aug 26, 2026 · 804 words
Novu is the right tool for exactly one job: you are building a product, your users need notifications across email, SMS, push, chat, and an in-app inbox, and you want one API call per event instead of five integrations. For that job it is excellent and self-hosting saves real money over Courier or Knock. For any other job, including every homelab alerting use case, it is a 7-container stack solving a problem you do not have. Pick the right bucket before you pull a single image.
The stack is seven containers, not one
The catalogue's "complex multi-service stack" con undersells it. The community compose file in the Novu repo (docker/community/docker-compose.yml) runs an API server, a worker that executes workflow steps, a WebSocket server for the in-app feed, the web dashboard, and a local S3-compatible store for attachments, on top of MongoDB and Redis. Every one of those has to be up for a notification to land. The catalogue floor of 2 GB RAM is honest for idle; I would plan 4 GB on a box that also runs a database, because the worker and API are Node processes that grow under load.
Three environment values matter and the rest can stay at defaults: JWT_SECRET (long random string, never rotate it casually or every session dies), STORE_ENCRYPTION_KEY (encrypts provider credentials at rest, must be exactly 32 characters), and the pair API_ROOT_URL / FRONT_BASE_URL set to the public URLs behind your reverse proxy. Get the URL pair wrong and the dashboard loads but every call fails CORS, which looks like a broken install rather than the config error it is.
Novu delivers nothing by itself
This is the part that surprises people coming from Gotify or ntfy. Novu is a router and a state machine. Email still goes out through SendGrid, Postmark, SES, or your own SMTP server; SMS through Twilio or a peer; push through FCM and APNs; chat through Slack, Discord, or Teams webhooks. You configure one provider per channel per environment, and Novu's value is that your application code never learns which one. Swapping Postmark for SES later is a dashboard change, not a deploy. Budget for at least one paid provider account before you count Novu as free.
Workflows: the editor is nice, the code is better
Workflows are the unit of work: an event named order.shipped triggers a workflow that might send an in-app message immediately, wait 4 hours, then email if the in-app message was not read. Digest steps collapse 40 events into one message, which is the feature that stops your users from muting you. You can build these in the visual editor, and for demos that is fine. For anything you will maintain, use the code-first framework (@novu/framework), where workflows live in your repo, are typed, and go through code review like everything else. The dashboard then becomes the place non-engineers edit copy, not logic.
The Inbox component is why product teams pick it
The ready-made <Inbox /> React component gives you a notification bell, unread count, and feed that updates live over the WebSocket service, styled to match your app. Building that yourself is 2 to 3 weeks of work that nobody enjoys, and it is the single strongest argument for Novu over stitching together n8n and a mail provider. If you do not need an in-app feed, that argument weakens considerably, and a workflow engine from the automation category plus SMTP may be all you need.
Homelab alerts want ntfy, not Novu
I have watched people deploy Novu to get "Docker container down" pushes to their phone. Do not. ntfy does that in one container at 30 MB of RAM with a curl -d "backup failed" ntfy.sh/mytopic, and Gotify is the same idea with a nicer web UI. Novu's multi-user tenancy, provider abstraction, and digest logic are dead weight when there is one recipient and one channel. The Novu Cloud free tier is also generous enough that a side project can start there and self-host later, once the MongoDB backup routine is something you actually want to own.
What I'd do
If I were shipping a SaaS with a notification bell: self-host Novu from the community compose file on a 4 GB VM, with nightly mongodump to off-box storage, Postmark for email, FCM for push, workflows in code from day one, and the Inbox component in the frontend. I would put Caddy in front with two hostnames, one for the API and one for the dashboard, and set the URL pair before first boot. If I were doing anything smaller than that, I would install ntfy and be done in 4 minutes.
Similar automation & workflows apps
n8n
Automation & WorkflowsWorkflow automation with a node-based editor
Replaces Zapier, Make
Firecrawl
Automation & WorkflowsTurn websites into clean data for AI applications
Replaces Apify
Crawl4AI
Automation & WorkflowsOpen-source web crawler built for LLM data pipelines
Replaces Firecrawl
Huginn
Automation & WorkflowsAgents that monitor and act on your behalf
Replaces IFTTT, Zapier
Apache Airflow
Automation & WorkflowsProgrammatically author, schedule and monitor workflows
Replaces AWS Step Functions, Azure Data Factory
ToolJet
Automation & WorkflowsLow-code platform for building and automating business tools
Replaces Retool, Microsoft Power Apps