Filed underFerramentas Open Sourceon•5 min de leitura

Novu: Infraestrutura Open Source de Notificações

Conheça o Novu, infraestrutura open source de notificações para desenvolvedores. Descubra como usar o Novu Framework, API unificada e o componente React Inbox.

9 ecossistemas, dezenas de provedores e centenas de horas de engenharia poupadas

Construir um sistema de notificações do zero parece simples no início, mas rapidamente se torna um pesadelo de manutenção. Integrar APIs separadas para e-mail, SMS, push e chat consome ciclos preciosos de desenvolvimento.

O Novu resolve esse problema ao fornecer uma infraestrutura open source unificada para o gerenciamento de comunicações e fluxos de trabalho.

A tese central é que desenvolvedores não deveriam gastar tempo criando lógicas repetitivas de roteamento de mensagens. O Novu centraliza essa complexidade em uma única API e introduz uma abordagem orientada a código para definir regras de entrega.

O que é o Novu e quais são suas funcionalidades principais

O Novu é uma infraestrutura de comunicação open source projetada para desenvolvedores e fundadores solo. A ferramenta centraliza o envio de notificações por meio de múltiplos canais com uma única API.

A plataforma suporta os seguintes canais e recursos:

  • Inbox In-App: Componente React embutido para criar centrais de notificação diretamente na interface da aplicação.
  • Canais Externos: E-mail (com integrações para SendGrid, Resend, Amazon SES, entre outros), SMS (Twilio, Vonage, SNS), Push e Chat (Slack, Discord, MS Teams, WhatsApp).
  • Orquestração: Gerenciamento de preferências de assinantes, tópicos, atrasos e condições personalizadas por canal.
  • Agentes e IA: Suporte para infraestrutura de comunicação de agentes, permitindo receber e normalizar mensagens de entrada de forma consistente.

Comparado a construir lógicas personalizadas ou usar ferramentas SaaS fechadas, o Novu oferece a flexibilidade do código aberto com a estrutura pronta de um serviço corporativo. Críticos podem argumentar que gerenciar uma infraestrutura própria, como no caso do Listmonk, adiciona complexidade operacional, mas o ganho em portabilidade e controle costuma compensar em projetos em expansão.

Como funciona a abordagem code-first do Novu Framework

Fluxo de implementação com Novu Framework
  1. 1

    1. Instalação e configuração

    Conectar o SDK ao runtime ou framework da aplicação, como Next.js, Express ou NestJS.

  2. 2

    2. Definição do fluxo em código

    Estruturar regras, canais e modelos de mensagem em TypeScript/JavaScript com o pacote @novu/framework.

  3. 3

    3. Sincronização via CLI

    Executar o comando de sincronização ou GitHub Actions para alinhar o código ao dashboard de controle.

O grande diferencial técnico da ferramenta é o Novu Framework. Ele permite escrever fluxos de trabalho diretamente em TypeScript ou JavaScript utilizando o pacote @novu/framework.

O código da aplicação torna-se a fonte da verdade para os fluxos de notificação. A sincronização com a nuvem ou com uma instância auto-hospedada ocorre por meio da CLI ou de ações do GitHub.

O fluxo básico de configuração e uso segue uma estrutura padrão:

1. Instalação e configuração inicial

O framework integra-se a múltiplos runtimes e frameworks web, incluindo Express, Next.js, NestJS, Remix, SvelteKit, Nuxt e AWS Lambda. A definição das rotas de notificação ocorre diretamente no código-fonte do projeto.

2. Definição do fluxo em código

Os desenvolvedores criam o fluxo de trabalho utilizando o SDK, especificando condições, canais e modelos de mensagem.

// Exemplo conceitual de definição de fluxo com o Novu Framework
import { workflow } from '@novu/framework';

export const welcomeWorkflow = workflow('welcome-workflow', async ({ step, payload }) => {
  await step.inApp('send-in-app', async () => {
    return {
      subject: 'Bem-vindo à plataforma',
      body: `Olá ${payload.name}, estamos felizes em tê-lo aqui.`
    };
  });

  await step.email('send-email', async () => {
    return {
      subject: 'Confirme seu e-mail',
      body: `<p>Clique no link para ativar sua conta.</p>`
    };
  });
});

3. Sincronização via CLI

Após definir os fluxos no código, a sincronização com o painel ocorre executando o comando de sincronização ou configurando o GitHub Actions:

npx novu-sync

O painel de controle permanece alinhado automaticamente com o código por meio de uma URL de ponte determinística, permitindo que membros não técnicos visualizem os fluxos sem alterar a lógica principal.

Cenários de uso real

A ferramenta atende a diferentes perfis de projetos, com destaque para situações específicas:

  • Aplicações SaaS em crescimento: Startups que precisam disparar alertas transacionais multicanal sem criar um microsserviço dedicado apenas a gerenciamento de filas e provedores de e-mail e SMS (avaliando a melhor integração de API, como a comparação entre Unosend e Resend).
  • Aplicações com componentes embutidos: Projetos que exigem uma central de notificações estilo sino (notification center) pronta para uso em React, poupando semanas de desenvolvimento frontend.
  • Sistemas baseados em Agentes de IA: Desenvolvedores que constroem agentes inteligentes e precisam normalizar mensagens recebidas de diferentes plataformas de chat em um formato único.

O Novu pode não ser a melhor escolha para aplicações extremamente simples que enviam apenas um e-mail ocasional de recuperação de senha, onde uma biblioteca nativa leve resolve o problema com menos dependências.

Vantagens, limitações e próximos passos

Vantagens

  • API unificada que elimina a necessidade de integrar dezenas de SDKs diferentes.
  • Abordagem code-first que mantém a lógica de negócios versionada no controle de versão.
  • Componentes de interface prontos para React.
  • Flexibilidade do código aberto com opção de auto-hospedagem.

Limitações

  • Curva de aprendizado inicial para configurar o ecossistema de ponta a ponta.
  • Exige gerenciamento de infraestrutura caso optes por não usar a versão gerenciada em nuvem.

Para iniciar, a documentação oficial no GitHub e os exemplos de inicialização para Next.js e Remix oferecem os pontos de partida mais eficientes para testar a integração em um ambiente de desenvolvimento local.

참고 자료

Perguntas Frequentes (FAQ)

Q. O Novu substitui serviços como SendGrid e Twilio?

Não exatamente. O Novu atua como uma camada unificada de orquestração que se conecta a esses provedores. Ele gerencia os fluxos de trabalho e as regras de entrega, enquanto os provedores realizam o envio final.

Q. Como funciona a abordagem code-first do Novu Framework?

Permite definir fluxos de notificação diretamente em TypeScript ou JavaScript no código da aplicação e sincronizá-los com a nuvem ou instância auto-hospedada usando a CLI ou GitHub Actions.

Q. É obrigatório usar a versão cloud do Novu?

Não. O Novu é open source e pode ser auto-hospedado de acordo com a infraestrutura e os requisitos de segurança do seu projeto.

Q. Quais canais de comunicação são suportados nativamente?

O Novu suporta inbox in-app, e-mail, SMS, push notifications e canais de chat como Slack, Discord, Microsoft Teams e WhatsApp.

Voltar para todos os artigosInício