Cos'è
Novu è un'infrastruttura di notifica open-source pensata per sviluppatori e team di prodotto. Offre un'API unificata e una dashboard visuale per inviare, orchestrare e monitorare comunicazioni su più canali: email, SMS, push mobili, notifiche in-app e chat (Slack, Microsoft Teams, Discord, WhatsApp, Telegram). Il progetto è distribuito con licenza MIT per il codice core, adotta un modello "open core" in cui alcune funzionalità avanzate risiedono in moduli coperti da licenza commerciale, e può essere ospitato in proprio o utilizzato come servizio gestito tramite Novu Cloud.
Nato a Tel Aviv nel 2021 e precedentemente noto come Notifire, Novu ha raccolto un round seed di 6,6 milioni di dollari nel 2022. L'obiettivo dichiarato è fornire un fondo comune riutilizzabile per un problema che la maggior parte dei team software affronta ripetutamente: collegare prodotti e utenti attraverso canali di comunicazione diversi senza dover ricostruire ogni volta il medesimo stack.
Il problema che risolve
Gestire le notifiche in un'applicazione moderna richiede molto più di una singola chiamata a un provider di email o SMS. I team devono integrare provider diversi per ciascun canale, gestire template, applicare logica di routing, rispettare le preferenze degli utenti, implementare retry in caso di fallimento, aggregare eventi in digest e offrire una inbox in-app coerente. Ogni canale ha le proprie API, i propri formati di payload, i propri meccanismi di errore e i propri vincoli di recapito. Questo lavoro si ripete in modo pressoché identico in ogni progetto, consumando tempo di ingegneria e introducendo debito tecnico.
Novu propone di spostare questa logica su uno strato dedicato: invece di spargere il codice delle notifiche tra più servizi, il team definisce workflow centralizzati e li attiva tramite un'API uniforme. Il risultato è una separazione più netta tra il prodotto, che emette semplicemente un evento, e l'infrastruttura, che decide come, dove e quando consegnare il messaggio. Questo approccio rende più semplice aggiungere canali, modificare template o cambiare provider senza toccare il codice applicativo.
Come funziona
L'architettura di Novu si articola in quattro componenti principali:
- API server: espone endpoint REST per attivare workflow, gestire subscriber, template, integrazioni e preferenze.
- Worker: elabora in background le code di notifica, applicando passi condizionali, ritardi, digest e retry.
- WebSocket server: gestisce la distribuzione in tempo reale delle notifiche in-app agli utenti connessi.
- Dashboard: interfaccia web per progettare workflow, redigere template, collegare provider e monitorare l'attività.
Per l'auto-hosting, Novu richiede MongoDB come datastore principale e Redis per le code e la cache. È disponibile anche una distribuzione containerizzata ufficiale basata su Docker Compose, oltre a template per piattaforme come Railway. L'installazione self-hosted prevede la configurazione di variabili essenziali quali chiavi JWT, chiave di cifratura dei provider e secret interni.
Dal punto di vista del codice, l'applicazione emette un evento indicando il trigger, il destinatario (subscriber) e un payload; Novu seleziona il workflow corrispondente, valuta le condizioni per canale, interroga le preferenze dell'utente e instrada il messaggio verso il provider configurato. I subscriber possono essere identificati da un ID stabile e arricchiti con attributi (nome, email, preferenze, timezone) che i template utilizzano per personalizzare il contenuto.
Caratteristiche principali
- API unificata: un singolo endpoint per attivare notifiche su tutti i canali supportati, indipendentemente dal provider sottostante.
- Workflow visivi: editor drag-and-drop per comporre flussi di notifica con diramazioni, ritardi, digest e condizioni per canale.
- Inbox in-app embeddabile: componenti pronti per React, Angular, Vue e React Native che mostrano notifiche in tempo reale, con funzioni come lettura, archiviazione e snooze.
- Preferenze utente: pannello integrato per permettere agli utenti di attivare o disattivare canali e categorie di notifica.
- Digest engine: aggregazione di più eventi in un unico messaggio, utile per ridurre il rumore.
- Editor di email a blocchi: costruzione di template email senza scrivere codice, con supporto a variabili e internazionalizzazione.
- Integrazioni con provider: supporto per decine di provider di email, SMS, push e chat, tra cui SendGrid, Twilio, Firebase Cloud Messaging, Slack e Microsoft Teams.
- Osservabilità: tracciamento dello stato di consegna, tassi di successo, errori e log di esecuzione per diagnosticare problemi di recapito.
- Multi-tenancy: gestione di tenant separati, rilevante per piattaforme B2B o white-label.
- Timezone-aware delivery: possibilità di pianificare la consegna in base al fuso orario del destinatario.
- Agent Communication Infrastructure (ACI): un filone più recente del prodotto estende il modello a conversazioni in cui agenti software interagiscono con utenti umani sui canali di comunicazione abituali.
Casi d'uso concreti
- Notifiche transazionali SaaS: conferme di registrazione, reset password, avvisi di fatturazione e inviti, inviati via email e in-app.
- Alerting DevOps: inoltro di allarmi infrastrutturali a Slack, email o PagerDuty con logica di priorità ed escalation.
- E-commerce: aggiornamenti sugli ordini (conferma, spedizione, consegna) distribuiti tra email e SMS in base alle preferenze del cliente.
- Feed attività in-app: inbox personalizzata per mostrare commenti, menzioni, approvazioni e altri eventi rilevanti in tempo reale.
- Piattaforme multi-tenant: workflow e preferenze isolate per ciascun cliente, mantenendo un'unica installazione con dati separati.
- Comunicazioni operative: notifiche di sicurezza, manutenzione programmata o anomalie account, con canali ridondanti in caso di indisponibilità di un provider.
Punti di forza e limiti
Punti di forza
- Codice sorgente aperto e auto-ospitabile, con controllo completo sui dati.
- Modello conversazionale moderno che integra notifiche prodotti e interazioni agent-utente.
- Ampia gamma di SDK client e provider preintegrati.
- Dashboard visiva che riduce la necessità di modificare il codice per cambiare template o workflow.
- Community attiva e documentazione pubblica.
Limiti
- L'auto-hosting richiede la gestione di MongoDB, Redis e più servizi, con overhead operativo non trascurabile e competenze DevOps.
- Alcune funzionalità avanzate (SSO, audit log, ruoli granulari, capacità enterprise) rientrano nella versione commerciale.
- In confronto a piattaforme più mature, il supporto nativo per alcuni linguaggi o framework mobili può essere meno esteso.
- Il modello open core può rendere meno immediata la distinzione tra funzionalità gratuite e a pagamento.
Alternative e contesto
Il mercato dell'orchestrazione delle notifiche include diverse opzioni. Tra le soluzioni proprietarie figurano Knock, Courier, MagicBell e OneSignal, che offrono dashboard mature, SDK estesi e hosting gestito, ma non forniscono un'opzione di self-hosting completo come Novu. Twilio e SendGrid rimangono ottimi provider di singoli canali, ma non offrono di per sé un motore di workflow unificato. Nel mondo open-source esistono progetti più piccoli come Notifo o Notif.me, anche se con ecosistema e adozione inferiori. Novu si colloca come l'unica alternativa open-source aperta e matura nel segmento dell'orchestrazione multicanale.
In sintesi
Novu è un'infrastruttura di notifica open-source che unifica la gestione di email, SMS, push, in-app e chat sotto un'unica API e una dashboard visiva. Si rivolge a team che vogliono evitare di ricostruire il proprio sistema di notifiche, mantenendo al contempo flessibilità e, se necessario, il controllo sui dati tramite self-hosting. Il modello open core garantisce l'accesso al codice base con licenza MIT, mentre le funzionalità enterprise richiedono una licenza commerciale. È una scelta solida per SaaS, piattaforme B2B e team DevOps che cercano un equilibrio tra rapidità di implementazione e capacità di personalizzazione.
Risorse
- Sito ufficiale: https://novu.co
- Documentazione: https://docs.novu.co
- Repository GitHub: https://github.com/novuhq/novu
- Dashboard cloud: https://web.novu.co
