mrkeyoor.com_
Fri 16 Oct 17:58 UTC
Self-Hostedevaluationupdated 08 Oct 2026

novu review

Novu is an open-core notification and conversation platform for products and software agents. It puts in-app inboxes, email, SMS, push, and chat behind shared workflows so a team does not have to rebuild preferences, digests, and provider routing in each application.

+16stars / 7d
Verdict

Our run of Novu pulled 5,473 packages, occupied 4,007 MB, and finished a successful build in 357 seconds, so it suits teams ready to own notification infrastructure rather than add a small library. Choose it when inboxes, preferences, workflow logic, agent conversations, and several providers need one home. Use a direct provider SDK or a narrower service when one channel covers the product.

We ran it

Lab card: what happened when we ran novuScreenshot of novu (go.novu.co/github)
Install✓ · 177s5473 packages · 4007 MB
Build✓ · 357s
Testsn/ano test script
Repo11114 files~1,074,113 lines of source · 233.5 MB · 40 CI workflows

Answers from our run

Does novu build from source?

Dependencies installed in 177 seconds (5473 packages), and the build succeeded in 357 seconds. We cloned commit 9dc5c2b into a clean Debian container with 3 CPUs and no project-specific setup.

Does novu have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use novu?

Teams sending through one provider and one channel: a direct provider SDK avoids Novu's workflow and infrastructure layer.

What are the alternatives to novu?

Knock, Courier, Apprise. Our run of Novu pulled 5,473 packages, occupied 4,007 MB, and finished a successful build in 357 seconds, so it suits teams ready to own notification infrastructure rather than add a small library.

Setup2/54,007 MB install plus databases, queues, storage, and services
Docs5/5Clear local, self-hosted, provider, inbox, and API guidance
Community5/540,126 stars, an October 8 push, and active issue work
Maturity4/5Active packages and a documented self-host path, with open-core limits

Discussed on

  1. hnNovu – Service for managing multi-channel notifications with a single API160 points
  2. hnThe open-source Agent Communication Infrastructure3 points

Who it’s for

Product teams that need one event to reach users through several notification channels.
SaaS engineers who want a React inbox, user preferences, digests, and workflow conditions.
Agent builders connecting existing agent logic to Slack, Teams, Telegram, WhatsApp, email, or an in-app inbox.
Platform teams prepared to own MongoDB, Redis, object storage, secrets, and several Novu services.

Who it’s NOT for

Teams sending through one provider and one channel: a direct provider SDK avoids Novu's workflow and infrastructure layer.
Small self-hosters expecting one light service: Novu recommends 4 vCPUs and 8 GB RAM for its single-VM application stack, plus MongoDB, Redis, and storage.
Community-edition teams that need several staff accounts, MFA, RBAC, or social login: the comparison table caps team members at one and reserves those controls for Novu Cloud.
Buyers requiring the entire repository under MIT terms: the README places the root enterprise folder under a commercial license.
Frontend teams needing a ready Vue, Angular, or React Native inbox: the README describes those clients as coming later.

Setup reality

Our sandbox installed commit 9dc5c2b in 177 seconds, pulling 5,473 packages and using 4,007 MB on disk. The build succeeded in 357 seconds. The repository had 11,114 files, about 1,074,113 lines of source, and a 233.5 MB checkout. Tests were skipped because the lab found no test script or target.

Source development requires Node 22 and pnpm 11, then adds MongoDB, Redis, and optional LocalStack. The API, worker, WebSocket service, dashboard, and webhook process share URLs and secrets. Production needs a JWT secret, a 32-character provider-credential encryption key, a server API key, and credentials for each delivery provider.

The self-hosted path is an operating commitment. Novu recommends persistent Redis queues, MongoDB, and object storage, while the single-VM application recommendation alone is 4 vCPUs and 8 GB RAM. Community self-hosting also omits social login, MFA, RBAC, and several Cloud features.

The 11,114-file monorepo covers five product notification channels

Novu's 11,114-file monorepo puts in-app Inbox, email, SMS, push, and chat behind one workflow system. Developers can add conditions, digests, templates, and subscriber preferences, then connect a delivery provider for each channel. The README lists 20 email providers, 37 SMS providers, 8 push providers, and 13 chat providers. A React component supplies the customer-facing inbox. That combination makes sense once notification rules leak into application code and separate vendor dashboards.

The agent side uses the same communication layer in both directions. Across 6 named integrations, Novu accepts inbound messages, turns channel-specific payloads into one conversation model, sends them to an agent you already operate, and returns its replies. The list covers Slack, Microsoft Teams, Telegram, WhatsApp, email, and the in-app inbox. Novu does not provide the agent itself, an important boundary for architecture and cost.

The 4,007 MB install makes this a platform choice

Our sandbox installed 5,473 pnpm packages in 177 seconds, and dependencies occupied 4,007 MB. That is a large base for local development and CI before MongoDB, Redis, LocalStack, or provider test accounts enter the picture. The root package requires Node 22 and pnpm 11. Its setup command installs packages, creates default environment files, and builds the monorepo.

The checkout was already substantial: 11,114 files, about 1,074,113 lines of source, and 233.5 MB at commit 9dc5c2b. Novu splits work across an API, worker, WebSocket service, dashboard, webhook process, and shared packages. The recommended development runner starts several of them together through local proxies. A developer changing one workflow system is therefore working inside a full product rather than a thin SDK.

What happened when we ran it

Our measurement setup was a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. Installation succeeded in 177 seconds. The build then succeeded in 357 seconds. Those results show that commit 9dc5c2b can install and compile in a clean sandbox, while the 4,007 MB installed footprint and nearly 6-minute build set realistic expectations for a routine pipeline.

Tests were skipped because the lab found no test script or target, so this run provides no passing test result. The scan recorded 40 CI workflow files, a monorepo workspace, no Dockerfile, and no tests directory. Novu does include Docker Compose files for local dependencies and community deployment, but that is separate from the lab's Dockerfile signal. We did not start the API, Redis, MongoDB, a provider, or the browser inbox.

Self-hosting needs a 32-character key and three stateful systems

The self-hosted path needs a 32-character STORE_ENCRYPTION_KEY for provider credentials. Local development uses MongoDB and Redis, with LocalStack needed for S3-related modules. Production guidance adds persistent queue configuration and object storage. The API, worker, WebSocket service, and dashboard each have their own URLs or ports, while secrets must agree across processes. The JWT secret and server API key also need normal production handling.

Novu's single-VM recommendation assigns 4 vCPUs and 8 GB RAM to its application services. The same guide budgets 2 GB RAM and 20 GB of disk for MongoDB, 2 GB RAM for Redis, and at least 10 GB for S3 storage. Larger deployments split the API, worker, WebSocket service, Redis queues, and cache across more machines. That is reasonable for shared notification infrastructure, but excessive for one transactional email path.

Community self-hosting limits the account to 1 user

The Community comparison limits the self-hosted account to 1 user and lacks MFA, RBAC, social login, custom environments, email activity tracking, and the option to remove Novu branding. Social login is also called out in the self-hosting guide: users must sign in with email and password. Check that table before treating self-hosting as a feature-for-feature copy of Novu Cloud.

Licensing has a similar dividing line. The README calls the core MIT licensed but places the root enterprise folder under commercial terms. Operators also need to close a default-open door: the Docker guide says dashboard account registration is enabled unless DISABLE_USER_REGISTRATION=true is set. The setup script generates 3 secrets, yet provider keys, sender identities, domains, webhooks, backups, and upgrades remain the operator's job.

An October 8 push and 120 open items show active maintenance

GitHub showed 40,126 stars and a last push on October 8, 2026. Its 120 open items split into 56 issues and 64 pull requests, so the combined API count is not a bug total. The latest release endpoint pointed to @novu/framework@v2.14.0, published September 28, with provider, framework, agent-channel, and inbound-message work. Recent pushes and an active review queue support a high community score.

The queue also gives buyers concrete regression cases to test. Open issue 12719 reports that an Inbox tag filter with more than 20 tags returns no notifications. Issue 4194 covers Kannel SMS over SSL, while a related pull request remained active in the current list. Neither report proves a general reliability problem. Both show why a team should run its own providers, filters, retries, and preference rules before moving user communication onto the platform.

Novu fits when notification rules outgrow provider SDKs

At 4,007 MB after installation, Novu is hard to justify when one provider and one channel cover the job. It earns the added machinery when a product event may become an inbox item, an email after a delay, or an urgent message elsewhere, all under shared preferences. Apprise is narrower for outbound routing, while ntfy is simpler for HTTP-based push. Hosted services such as Knock or Courier trade self-host control for fewer systems to operate.

Our successful 357-second build is useful evidence, but the skipped test step leaves application behavior unverified in this sandbox. Treat the 5,473 packages and 4,007 MB footprint as the admission price for a broad communication layer. If your team can name the workflows and owners that justify that price, Novu belongs on the shortlist. If it cannot, start with the provider SDK you already need.

Alternatives

ProjectWhat it isPick it when
KnockA managed notification platform with workflows, preferences, and in-app experiences.pick this instead when a hosted control plane is acceptable and your team does not want to operate Novu.
CourierA hosted multi-channel notification API with templates and routing.pick this instead when provider orchestration matters more than open-source self-hosting.
AppriseA library and CLI that sends notifications to many services.pick this instead when you need outbound routing without an inbox, workflow editor, preferences, or conversation layer.
ntfy gh↗A compact self-hosted push service built around HTTP topics.pick this instead when simple app-to-device push is enough and multi-channel workflows would be excess.

Sources

  1. Novu README
  2. Run Novu locally
  3. Self-host Novu
  4. Community self-hosted and Novu Cloud comparison
  5. Novu Framework v2.14.0 release
  6. Novu issues and pull requests

More self-hosted reviews

Qwen3.8-Flash-Next-Single-DGX-Spark-TensorFold · invisible_dots · LibreTV · unifi-toolkit · ps5-payload-manager · DiPlay · the whole board →