Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Novu Laravel Laravel Package

novu/novu-laravel

Official Laravel SDK for Novu, the open-source notification infrastructure. Send multi-channel notifications, manage subscribers and workflows, and trigger events from your Laravel app. Deliver in-app, email, SMS, push, and chat messages through one unified, developer-friendly API.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. novu/novu-laravel is a thin client SDK wrapping Novu's REST API — a service provider, config file, and facade over HTTP calls. It is not a notification engine. All orchestration value (workflow definitions, digest/delay steps, provider routing, subscriber preferences, in-app inbox) lives in the Novu platform, not in this package. Architecturally it belongs in a small adapter layer beside your existing mail/queue code, not in the domain layer. Teams expecting a drop-in replacement for Laravel's Notification system will be disappointed; teams wanting Novu as an upstream orchestrator will find the shape correct but the implementation stale.

Integration feasibility. Composer install, publish config, set API key, call facade methods. A competent Laravel developer gets a "hello world" trigger working in under a day. The friction is not conceptual — it is dependency hygiene. An archived package last released 2024-04-09 will carry Laravel/PHP version constraints from that era; expect conflicts against Laravel 11/12 and PHP 8.3+. Realistic effort to production: 1–2 weeks for a single notification workflow including tests, retries, and secrets management, conditional on resolving the constraint conflicts.

Technical risk. High, and concentrated in one fact: the repository is archived.

  • No upstream security patches, no PHP/Laravel version bumps, no fixes for Novu API drift. Novu's API evolves; this client will not follow it.
  • 12 stars and 0 dependents means effectively zero community gravity — no Stack Overflow corpus, no third-party forks to lean on, no signal that anyone else will hit the same edge cases.
  • The 0.62 composite score with an opportunity score of 21.57 reflects a package that is technically present but commercially and communally inert.
  • MIT license is the mitigating factor: you can fork, patch, and vendor without legal review.

Key questions before committing.

  1. Why was it archived — superseded by an official novu/novu-php SDK, or abandoned outright? This determines fork-vs-replace.
  2. What Novu API version does the client target, and is that version still supported by Novu Cloud and self-hosted images?
  3. Does it cover the surfaces we need — trigger, subscriber CRUD, preferences, in-app inbox feed — or only trigger?
  4. Do we need webhook signature verification for delivery callbacks, and does the package provide it?
  5. Who owns the fork internally if Novu ships a breaking API change?

Integration Approach

Stack fit. Fits a conventional Laravel monolith or modular monolith where notifications are a cross-cutting concern: API service, queue workers, scheduler. Novu runs as either SaaS or self-hosted (Docker/Kubernetes) — the self-hosted path matters if subscriber PII cannot leave your boundary. The SDK itself is stateless and adds no infrastructure footprint; the footprint is Novu's.

Recommended migration path. Treat the archived SDK as a reference implementation, not a dependency. Three options, in descending order of preference:

  1. Internal thin client. ~200 lines over Laravel's Http facade with retry(), throw(), and a typed DTO layer. Removes the archived dependency entirely while keeping Novu's value.
  2. Fork and vendor. If the package's surface is richer than you want to reimplement, fork under your org, relax the Composer constraints, pin to a commit, and treat it as first-party code.
  3. Adopt as-is with a version pin. Only defensible for a short-lived proof of concept.

Compatibility. Verify Composer constraints against your Laravel and PHP matrix first — this is the single most likely blocker. Confirm config caching works (php artisan config:cache with the published config), confirm the facade alias does not collide, and confirm the client honours a configurable base URL so you can point at self-hosted Novu or a proxy.

Sequencing.

  1. Week 1 — spike. One low-risk notification (internal ops alert) through Novu Cloud with the SDK as-is or a 50-line HTTP shim. Validate auth, payload shape, and delivery.
  2. Week 2 — decision gate. If the spike succeeds, choose client strategy and write the internal adapter interface so callers never import the SDK directly.
  3. Week 3–4 — productionise. Move to queued dispatch, add retries/backoff, idempotency keys, structured logging, and a kill switch (config flag that reverts to Mail:: / Notification::).
  4. Later. In-app inbox requires the separate frontend SDK — sequence it as its own workstream, not a Laravel concern.

The adapter interface in step 2 is the load-bearing decision. It makes the archived-package question a swap, not a rewrite.

Operational Impact

Maintenance. You own it. Budget a standing line item: quarterly review against Novu's API changelog, plus Composer constraint upkeep at every Laravel major upgrade. If you vendor a fork, add it to your dependency-update rotation explicitly — archived packages silently rot because no bot opens PRs against them.

Support. No upstream maintainer. Escalation is Novu's community Discord and their public API docs; the SDK's own code is the only documentation for its quirks. Set expectations with stakeholders: this is a "supported by us" component, not a vendor-supported one.

Scaling. The SDK does no work — it serialises a payload and makes an HTTP call. Throughput is bounded by Novu's API rate limits and your queue worker concurrency, not by the package. Two practical constraints: trigger calls from request paths will add latency (dispatch to a queue), and per-subscriber fan-out multiplies API calls — batch where Novu supports it or accept the rate-limit ceiling.

Failure modes to design for.

  • Novu API 5xx or timeout — HTTP client blocks or throws mid-request. Needs timeout, bounded retry with jitter, and a dead-letter path so notifications are not silently lost.
  • 429 rate limiting — will appear under fan-out load; needs backoff, not blind retry.
  • Auth key rotation — API key in env/config; rotation without a redeploy requires config indirection.
  • Silent drops — a wrapper that swallows exceptions turns "notification not delivered" into "no error logged." Assert on responses and log transaction IDs.
  • API drift — Novu changes a field or endpoint; the archived client does not adapt. Mitigate with contract tests against the live API in CI.
  • Inbox desync — in-app feed depends on a separate frontend integration; treat "notification sent" and "notification seen" as distinct SLOs.

Ramp-up. Low for sending notifications — a mid-level Laravel developer is productive in a day. Moderate for the adapter and resilience layer — a senior developer, roughly a week. High for workflow design, provider configuration, and subscriber preference modelling, which are Novu platform skills rather than package skills and represent the real long-term cost. Plan for one person to become the internal Novu owner; a 12-star archived SDK will not grow that expertise for you.

Bottom line. The package is an acceptable scaffold and a poor dependency. Adopt Novu's platform if notification orchestration is a genuine need; consume it through an internal adapter you control, and do not let the archived SDK become a load-bearing part of your stack.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel