OneSignal

Best Self Hosted Alternatives to OneSignal

A curated collection of the 6 best self hosted alternatives to OneSignal.

OneSignal is a customer messaging platform for web and mobile that delivers push notifications, in‑app messages, email and SMS. It provides segmentation, automation, personalization and analytics to engage users and boost retention.

Alternatives List

#1
Novu

Novu

A self-hostable notification infrastructure to build, manage, and send multi-channel product notifications with templates, provider integrations, and a unified API.

Novu screenshot

Novu is an open-source notification infrastructure platform for building and managing product notifications across multiple channels (email, SMS, push, chat). It provides a unified API and an admin UI to create notification workflows, manage templates, and route messages through many third-party providers.

Key Features

  • Multi-channel notifications (e.g., email, SMS, push, chat) from a single API
  • Template management with a web-based UI for creating and maintaining notification content
  • Provider abstraction layer to switch between delivery providers without changing application code
  • Event-triggered workflows to orchestrate notification steps and channel fallbacks
  • Subscriber/user management for targeting and routing notifications
  • Preference management concepts for controlling which notifications users receive
  • Integrations for popular messaging/notification providers (varies by channel)
  • Developer-focused SDKs and APIs for embedding notification delivery into apps

Use Cases

  • Shipping transactional notifications (sign-up, password reset, receipts) across email/SMS
  • Product alerts and lifecycle messaging with channel fallback and centralized templates
  • Building an internal notification hub to standardize delivery providers across teams

Limitations and Considerations

  • Running the full platform typically requires multiple backing services (e.g., database, cache/queue), increasing operational complexity.

Novu fits teams that want control over notification logic and templates while keeping provider integrations modular. It is especially useful when multiple apps/services need consistent notification workflows and governance from one place.

38.4kstars
4.2kforks
#2
ntfy

ntfy

Self-hostable publish/subscribe notification service with HTTP API, web UI, and mobile apps for push alerts from scripts, CI, monitoring, and automations.

ntfy screenshot

ntfy is a lightweight publish/subscribe notification service that lets you send messages to topics via simple HTTP calls and receive them on phones, desktops, or the web. It is designed for automation-friendly alerts from scripts and systems, with optional authentication and multiple delivery integrations.

Key Features

  • Publish/subscribe topics with simple HTTP API (POST/PUT) and topic URLs
  • Web app and dedicated mobile apps for receiving notifications
  • Push notifications to Android (FCM) and iOS (APNs) when configured
  • Multiple subscription methods: web UI, mobile, and programmatic streaming (e.g., SSE/WebSockets)
  • Authentication and access control options (including users/roles and topic permissions)
  • Message options such as titles, priorities, tags, click actions, attachments, and icons (client-dependent)
  • Integrations for delivering outbound notifications (e.g., email, chat/webhooks) and acting as a relay/gateway
  • Docker-friendly deployment and configuration with support for reverse proxies and TLS

Use Cases

  • Monitoring/observability alerts (uptime checks, Prometheus Alertmanager-style notifications)
  • CI/CD and cron job outcomes (build failures, backup completion)
  • Smart home and automation events (doorbell/motion, device state changes)

Limitations and Considerations

  • Some advanced push capabilities (especially iOS/Android background delivery) depend on configuring platform push services (APNs/FCM) and may vary by client/device policies.

ntfy provides a practical “curl-to-phone” workflow while still supporting richer notification features and access controls for team or multi-service use. It fits well as a general-purpose notification backbone for homelabs and production automation where you want a simple, standards-based API and multiple client options.

28.1kstars
1.1kforks
#3
Apprise

Apprise

A notification gateway that routes alerts to 60+ services via CLI, Python API, and webhooks, with a unified URL syntax for configuration.

Apprise screenshot

Apprise is a notification library and CLI that lets applications send messages to many popular notification services using a single, consistent configuration format. It acts as a “notification gateway” you can embed in Python apps, scripts, monitoring tools, and automation workflows.

Key Features

  • Large notification provider catalog (email, chat, push, SMS, incident/alerting tools, and more) with a unified configuration URL syntax
  • Multiple interfaces: Python library/API, command-line tool, and plugin-style integrations
  • Notification URL parsing/validation and service discovery to simplify configuration management
  • Attachments support for providers that allow it (files/URLs) and rich message formatting where supported
  • Tag-based targeting and grouping to route messages to specific destinations
  • Config file support for managing multiple notification endpoints and reuse across scripts

Use Cases

  • Send monitoring and uptime alerts from scripts or tools to Slack/Discord/Email/SMS
  • Add a single notification layer to automation jobs (backups, CI tasks, cron jobs)
  • Centralize alert routing for self-hosted services by mapping events to multiple destinations

Limitations and Considerations

  • Provider capabilities vary (formatting, attachments, priority) and depend on each service’s API constraints
  • Some integrations require third-party credentials/tokens and may break when upstream APIs change

Apprise is well-suited when you want one notification implementation that can be retargeted to many services without rewriting integrations. Its URL-based configuration and broad provider support make it practical for both small scripts and larger systems needing consistent alert delivery.

15.4kstars
548forks
#4
Gotify

Gotify

Gotify is a self-hosted push notification server with a web UI, Android client, and REST API for sending messages from scripts, services, and monitoring tools.

Gotify screenshot

Gotify is a lightweight push-notification server you run yourself, designed for reliably delivering messages from applications, scripts, and infrastructure tools to end-user devices. It provides a web interface for managing users and “applications” (senders), plus client apps that receive notifications.

Key Features

  • REST API to send messages to specific applications/users using tokens
  • Web UI for managing users, clients, and applications (message sources)
  • Android client for instant push notifications (with optional notification channels)
  • Web client for viewing messages and receiving live updates
  • Priority support for messages (client-side handling/visibility)
  • Plugins system (server-side) to extend functionality
  • Docker images and straightforward deployment options

Use Cases

  • Send alerts from monitoring/uptime tools and homelab services
  • Push notifications from scripts/CI jobs (backup finished, deploy done)
  • Replace third-party push services for internal apps and teams

Limitations and Considerations

  • iOS support is not first-party (primarily Android + web clients)
  • Delivery to phones depends on the platform/client capabilities (e.g., Android background restrictions)

Gotify is well-suited for self-managed notification delivery with simple primitives (apps, tokens, messages) and minimal operational overhead. It’s commonly used as a Pushover/Pushbullet-style endpoint for homelab and DevOps notifications.

14.4kstars
800forks
#5
Dittofeed

Dittofeed

Self-hostable customer engagement platform to send email and other campaigns, build user journeys, segment audiences, and track messaging performance.

Dittofeed screenshot

Dittofeed is a self-hostable customer engagement and marketing automation platform for building data-driven messaging and lifecycle campaigns. It focuses on segmentation, event-based automation, and multi-step journeys so teams can orchestrate customer communications from their own infrastructure.

Key Features

  • Visual journey/workflow builder for multi-step, event-driven messaging
  • Audience segmentation based on user traits and events
  • Campaign creation and sending (email-focused; other channels depend on integrations)
  • Triggered messages and scheduled/batch campaigns
  • Templates and content management for message composition
  • Analytics/reporting for campaign and journey performance
  • Integrations via API/webhooks for ingesting events and syncing user data

Use Cases

  • Onboarding and activation sequences triggered by product events
  • Retention and re-engagement campaigns based on behavioral segments
  • Transactional and lifecycle email automation for SaaS products

Limitations and Considerations

  • Channel breadth and deliverability features can be less extensive than mature commercial CEP tools; production setups typically rely on external email providers for sending and reputation management.

Dittofeed is a good fit for teams that want an auditable, customizable engagement stack and prefer to keep customer data and automation logic in-house. It provides core building blocks for segmentation and journeys while remaining adaptable through integrations and self-managed infrastructure.

2.6kstars
312forks
#6
AnyCable

AnyCable

AnyCable is a scalable WebSocket server for Ruby on Rails Action Cable, offering a Go server with RPC to Rails and support for Redis and other brokers.

AnyCable screenshot

AnyCable is a WebSocket server built for Ruby on Rails applications using Action Cable. It replaces the default Rails Action Cable server with a high-performance Go implementation while keeping the Rails channel code and APIs, enabling easier scaling and better concurrency.

Key Features:

  • Drop-in replacement for Rails Action Cable server (keeps existing channel code)
  • Go-based WebSocket server designed for high concurrency and lower memory usage
  • RPC bridge between the WebSocket server and Rails application for channel callbacks
  • Supports different broadcast adapters/brokers (commonly Redis; also supports other pub/sub backends via adapters)
  • JWT-based authentication support and flexible connection identifiers (via Rails integration)
  • Observability hooks/metrics and structured logging options (implementation-dependent)

Use Cases:

  • Scaling Rails real-time features (chat, notifications, live updates) beyond a single Action Cable process
  • Reducing memory/CPU footprint of WebSocket handling in production Rails deployments
  • Running real-time WebSocket infrastructure as a separate service while keeping Rails channel logic

Limitations and Considerations:

  • Requires deploying and operating an additional WebSocket server component alongside the Rails app
  • Full feature parity depends on the chosen broker/adapter and configuration (e.g., advanced setups beyond Redis)

AnyCable is a pragmatic choice for teams invested in Rails Action Cable who need better performance and horizontal scalability without rewriting real-time application code. It separates WebSocket handling from Rails while preserving the familiar Action Cable programming model.

2.2kstars
110forks

Why choose an open source alternative?

  • Data ownership: Keep your data on your own servers
  • No vendor lock-in: Freedom to switch or modify at any time
  • Cost savings: Reduce or eliminate subscription fees
  • Transparency: Audit the code and know exactly what's running