MCPSERV.CLUB
Notifo

Notifo

Self-Hosted

Multi‑channel notification service for modern apps

Active(89)
837stars
0views
Updated 3 hours ago
Notifo screenshot 1
1 / 4

Overview

Discover what makes Notifo powerful

Notifo is a self‑hosted, multi‑channel notification engine designed for developers who need fine‑grained control over how events are communicated to end users. At its core, Notifo consumes **topic‑based events** (e.g., `clothes/shoes/nike/<model>`) and matches them against user subscriptions that can target specific paths or ancestor paths. Once a match is found, the system queues notifications and delivers them through a configurable set of channels—email (Amazon SES), WebSocket, WebPush, mobile push (Firebase), and SMS (MessageBird). The architecture is intentionally decoupled: event ingestion, subscription evaluation, queueing, and channel delivery are separate services that communicate via message brokers, allowing horizontal scaling and fault isolation.

Rich REST API

Template engine

Channel abstraction layer

Retry & back‑off

Overview

Notifo is a self‑hosted, multi‑channel notification engine designed for developers who need fine‑grained control over how events are communicated to end users. At its core, Notifo consumes topic‑based events (e.g., clothes/shoes/nike/<model>) and matches them against user subscriptions that can target specific paths or ancestor paths. Once a match is found, the system queues notifications and delivers them through a configurable set of channels—email (Amazon SES), WebSocket, WebPush, mobile push (Firebase), and SMS (MessageBird). The architecture is intentionally decoupled: event ingestion, subscription evaluation, queueing, and channel delivery are separate services that communicate via message brokers, allowing horizontal scaling and fault isolation.

Key Features

  • Rich REST API with OpenAPI documentation, exposing endpoints for event publishing, subscription management, template handling, and analytics.
  • Template engine that supports MJML for responsive emails and Liquid templating for dynamic content generation.
  • Channel abstraction layer: developers can plug in new providers or override defaults without touching the core logic.
  • Retry & back‑off: every channel implements its own retry strategy, guaranteeing eventual delivery even under transient failures.
  • Read/confirm tracking: notifications can be marked as None, Explicit, or Seen. The engine respects these states to avoid redundant sends and supports delayed delivery.

Technical Stack

LayerTechnology
BackendNode.js (TypeScript) + NestJS framework
DatabasePostgreSQL for persistence of users, subscriptions, templates, and audit logs
Message BrokerRabbitMQ or Azure Service Bus (configurable) for queues and schedulers
FrontendReact‑based management UI, served as a static bundle
ContainerizationDocker images published on Docker Hub; fully orchestrated via Docker Compose or Kubernetes manifests

The choice of NestJS provides a modular architecture with dependency injection, making it straightforward to swap out database drivers or message brokers. PostgreSQL’s JSONB columns are leveraged for flexible template storage, while RabbitMQ handles fan‑out patterns needed for multi‑channel dispatch.

Core Capabilities

  • Event API: POST /api/events accepts a payload with topic, data, and optional metadata. The service validates the topic against existing subscriptions.
  • Subscription API: CRUD endpoints for GET /api/subscriptions, enabling users to subscribe/unsubscribe from arbitrary topic paths.
  • Template API: Manage email, web push, and mobile push templates; compile Liquid expressions server‑side.
  • Webhooks: External services can register callbacks to receive real‑time delivery status updates or errors.
  • SDKs: Client libraries (JavaScript, TypeScript) expose a thin wrapper around the REST API, simplifying integration into web or mobile apps.

Deployment & Infrastructure

Notifo ships as a set of Docker images that can be deployed on any container runtime. The docker-compose.yml provided in the repo demonstrates a single‑node setup, but the architecture scales horizontally:

  • Stateless API services can be replicated behind a load balancer.
  • RabbitMQ clusters provide message durability and high availability.
  • PostgreSQL replicas handle read scaling for analytics dashboards.

Because the core services are stateless, Kubernetes deployments can use stateful sets for the database and RabbitMQ, while leveraging ConfigMaps/Secrets for environment configuration. The system also exposes a health‑check endpoint (/health) and metrics via Prometheus exporters, easing observability.

Integration & Extensibility

Notifo’s plugin system allows developers to add custom notification overlays or extend channel providers. A typical extension involves:

  1. Implementing a provider interface that conforms to the IChannel contract (send, schedule, cancel).
  2. Registering the provider in the dependency injection container via a simple configuration flag.
  3. Publishing new events with metadata that triggers the custom provider.

Webhooks and SDKs provide tight integration points for third‑party services. For example, a SaaS platform can expose a POST /notifo/webhook endpoint that receives delivery confirmations and updates internal analytics.

Developer Experience

  • Documentation: The GitHub repo hosts comprehensive README, API reference (OpenAPI spec), and a wiki with installation guides. Swagger UI is auto‑generated for interactive exploration.
  • Community: Active GitHub issues, a Slack channel, and regular releases (as shown by the CI badge) indicate healthy maintenance.
  • Configuration: Environment variables control every aspect—database URL, message broker host, provider credentials—making it easy to adapt to CI/CD pipelines or on‑premises setups.

Use Cases

ScenarioHow Notifo Helps
E‑commerce order updatesSubscribe users to orders/<userId>; send email on status change, push when shipped.
Project managementProjects expose project/<id> topics; tasks are sub‑topics. Users can opt for web or email only.
News & contentAuthors publish to category/<topic>; subscribers receive real‑time web pushes.
IoT alertsDevices emit device/<id>/alert; operators receive SMS or push notifications.

In each case, developers can fine‑tune delivery delays, confirmation logic, and channel preferences directly through the API or UI.

Advantages

  • Performance: Event matching is performed

Open SourceReady to get started?

Join the community and start self-hosting Notifo today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
apis-services
License
MIT
Stars
837
Technical Specs
Pricing
Open Source
Database
MongoDB
Docker
Official
Supported OS
Docker
Author
notifo-io
notifo-io
Last Updated
3 hours ago