Как перестать писать код для уведомлений и начать жить

29 апр 2026
40,103
4,503
181
5 дней

Представьте типичную задачу: пользователю нужно отправить приветственное письмо. Вы подключаете SendGrid, пишете обертку, настраиваете шаблоны. Через неделю менеджер говорит: «А давайте еще слать пуши в приложение и сообщение в Telegram, если он там подписан?». А потом: «Ой, а если он уже прочитал пуш, письмо слать не надо». В этот момент простая задача превращается в монструозную систему с кучей условий, очередей и интеграций, которую больно поддерживать.

Я наткнулся на Novu год назад, когда в очередной раз переписывал логику уведомлений для внутреннего проекта. Это не просто библиотека, а полноценная инфраструктура с открытым исходным кодом, которая берет на себя всю грязную работу по доставке сообщений. Ребята из Novu собрали почти 39 тысяч звезд на GitHub, и, кажется, не зря — они решают проблему, которая всплывает в любом продукте на этапе роста.

Что такое Novu и зачем он в вашем стеке

По сути, Novu — это единый слой абстракции. Вместо того чтобы подключать отдельно SDK для SMS, почты и пушей, вы подключаете один API. Проект построен по принципу Open Core: основная часть под лицензией MIT, а специфические энтерпрайз-фичи вынесены в отдельный платный слой. Для большинства задач бесплатной версии хватает с головой.

Команда проекта называет свое детище «Inbox infrastructure». Главная фишка здесь в том, что вы получаете не только бэкенд для рассылок, но и готовые фронтенд-компоненты. Например, колокольчик уведомлений в шапке сайта, который работает через вебсокеты «из коробки».

Novu Logo

Пять причин попробовать этот инструмент

Единый интерфейс для зоопарка провайдеров

Если завтра SendGrid заблокирует ваш аккаунт или вы решите перейти на Postmark, вам не придется менять ни строчки кода в логике приложения. В панели управления Novu просто переключается провайдер. Список поддерживаемых сервисов огромен: от классических Twilio и Mailgun до инструментов вроде Discord, Slack и даже WhatsApp.

Реклама

Готовый Inbox-компонент

Это, пожалуй, самая киллер-фича для фронтенд-разработчиков. Novu дает готовый React-компонент (Vue и Angular в планах), который реализует полноценный центр уведомлений внутри вашего приложения. Там уже есть Real-time обновления, счетчик непрочитанных и возможность отметить всё как прочитанное.

Novu's Embeddable Inbox components

Умные воркфлоу и Digest Engine

Иногда уведомлений становится слишком много, и они начинают бесить пользователей. У Novu есть механизм дайджестов. Можно настроить систему так, чтобы она собирала все лайки под постом за час и отправляла одно суммарное письмо вместо пятидесяти отдельных. Логика настраивается визуально в админке, без правок в коде приложения.

Пользовательские предпочтения

Хорошим тоном считается дать пользователю выбрать, куда он хочет получать чеки, а куда — новости маркетинга. Novu содержит встроенный компонент настроек. Пользователь сам ставит галочки (Email — да, Push — нет), а система фильтрует отправку автоматически.

No-code редактор шаблонов

Верстка писем — это отдельный круг ада. В Novu встроен блочный редактор, который позволяет верстать адаптивные письма прямо в браузере. Вы просто оставляете в коде плейсхолдеры для переменных, а контент правит дизайнер или копирайтер.

Как это выглядит в коде

Интеграция начинается с установки SDK. Для Node.js это выглядит стандартно:

import { Novu } from '@novu/node';

const novu = new Novu('<NOVU_API_KEY>');

await novu.trigger('order-confirmation', {
  to: {
    subscriberId: 'user_123',
    email: 'hello@example.com'
  },
  payload: {
    orderId: 'ABC-123',
    totalAmount: 2500
  }
});

Обратите внимание на метод trigger. Вы не говорите «отправь письмо». Вы говорите «произошло событие». А что делать с этим событием — отправить SMS или подождать 10 минут и отправить пуш — вы решаете в панели управления Novu.

Техническая сторона вопроса

Проект написан преимущественно на TypeScript. Архитектура модульная, что позволяет легко дописывать свои интеграции (провайдеры). Если вам не хочется использовать облачную версию Novu, проект можно развернуть у себя через Docker. Это критично для финтеха или медицины, где данные пользователей не должны покидать контур компании.

Интересно, что Novu активно использует Redis для очередей и управления воркфлоу, что обеспечивает высокую пропускную способность. Нагрузка в тысячи уведомлений в секунду для такой архитектуры не является проблемой.

Кому стоит внедрить Novu

Я бы рекомендовал присмотреться к проекту в двух случаях. Во-первых, если вы строите SaaS-продукт, где коммуникация с пользователем — это часть бизнес-логики. Вам все равно придется писать систему уведомлений, так зачем изобретать велосипед?

Во-вторых, это отличный выбор для команд, которые устали от бесконечных правок в шаблонах писем. Возможность отдать редактирование текстов и условий отправки не-разработчикам освобождает кучу времени.

Если ваш проект — это маленький лендинг с одной формой обратной связи, Novu может показаться избыточным. Но как только каналов связи становится больше двух, профит от централизации перекрывает любые затраты на внедрение.

Итог

Novu — это отличный пример того, как скучную и рутинную часть разработки превратили в элегантный сервис. Радует, что проект живой: коммиты летят ежедневно, а комьюнити в Discord очень отзывчивое. Если планируете добавлять уведомления в свой проект — попробуйте сначала Novu, это сэкономит вам недели разработки.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.