What is Push notification?
A push notification is the message that pops up on your mobile iOS or Android, and sometimes on your desktop or a web browser. It's often used by application publishers and authors to notify the end-user's device about certain event.
It looks like SMS text message and local mobile alerts, but they are application oriented only appears to user who use the application.
Users can stop any push notification anytime from their mobile settings in the notifications section. However, they are essential for many applications, so the user should be selective when selecting the app.
Push technology (server push) are technical term for internet-based communication that occurs when a server notifies the client about certain transaction (notification).
Types of push notification
There are three types of push notifications: mobile app push notification, web push notification and desktop push notification.
If you are using iPhone or iPad, you are most likely to be getting your push notification through Apple Push Notification Service (APNs) which is created, managed by Apple.
If you are an Android user, Google got Android application developers with Firebase Cloud Messaging which is the successor of Google Cloud Messaging.
Both Apple and Google push notification services are proprietary and commercial services.
Therefor, in this article we will list open-source free push notification servers and tools for developers who want to use open-source tools for better control which also will ensure privacy and lower cost.
Open-source Push Notification Solutions:
Pushkin is a free open-source tool for sending push notification. It's built with Python and no longer maintained, However, it is still popular among developers as it was forked and used in dozens of projects several times.
3- Pushy (iOS)
Pushy is built as a template for push notification for Apple Push Notification (APNs) Server with full Swift support. Though, it didn't have any update for 3 years, it's a good template for iOS developers.
4- Pigeon (Elixir)
Pigeon is an iOS and Android Push notifications for Elixir programming language. It's the ideal Elixir push notification server.
It's supported and packed by hundreds of developers.
5- Android PN Server and client
This project is formed of a client and server which you can get both for free as open-source projects. The project is also available as free version at F-Droid application store.
The project didn't get any update for years, but it's fairly stable.
- Client: https://github.com/daktak/androidpn-client
- Server: https://sourceforge.net/projects/androidpn/
Push.js is a desktop push notification framework which comes with full support for ES2015, and rich ecosystem. It also supports third-party plugins and integration as it also the best open-source desktop notification solution for node.js and electron applications.
Push.js is easy to implement and use with few steps. Its functionalities can be also extended through plugins like Firebase Cloud Messaging plugin. Developers also can create their own custom plugin thanks to a simple production-aware API Push offers.
7- Pushd: A Universal Mobile Push daemon
Pushd is rich protocol push notification server and mobile devices and web applications. It provides a layer for Apple push Notification Services (APNs), and Google Notification (Firebase Cloud Messaging).
This is a features-rich server application, it supports custom features for iOS like automatic badge incrementing, messages template, broadcasting, direct messaging, Redis backend, salient mode and more.
Above all, It's easy to install, configure, maintain and extend.
This is the most popular open-source project in this list among developers as it has a large supportive community and about 25 contributors.
AirNotifier is an open-source push notification server for mobile and desktop. It supports iPhone and iPad devices (APNs HTTP/2), Android devices through Firebase Cloud Messaging (FCM), Windows 10 desktop (WNS protocol).
AirNotifier features an API access control, unlimited number of devices, logging activities, access key management and web-based dashboard.
9- Gotify (Self-hosted push notification service)
Gotify is a self-hosted push notification service server. It's built with Go programming language to ensure stability and portability. It consists of server, command line (cli) application, android client, iOS client and rich plugin architecture.
It works on Windows servers, Linux servers, as well as it provides a fully functional docker image.
Iris is yet another push notification server without using Google Cloud Messaging (GCM), Firebase Could Messaging service (FCM) or Apple Push Notification service (APNs).
It's a self-hosted server, you can install it at your server and integrate it with your projects.
emqttd server to be installed first to be able to use the messaging service.
OpenPush is an open-source self-hosted replacement for Android Push notification service which is a proprietary messaging service. Note that it's still in development.
PushBits is a relay push notification server which deliver the messages based on Matrix network. It uses Gotify for sending messages and receiving clients for mobile devices.
Matrix is an open-source secure and decentralized communication protocol for real-time communication. It supports end-to-end encryption, instant messaging, VoIP, WebRTC and bridging.
It's a new project so expect new functionalities to be added in the near future.
It works with all browsers with desktop supported notification API.
14- WebPush (PHP)
WebPush is a web PHP-based push notification system which uses Web Push protocol. It can be added and implemented with PHP application with ease. However, it only supports PHP 7 and later.
- https://github.com/web-push-libs/web-push-php web-php
Open-source push notification alternatives are cost- and resources effective solutions to the commercial proprietary services, but they also come with their cost of maintenance and management.
Here, we selected the best we can find, however, there are more we have ignored and missed. If you think that we missed one, please let us know.
- Photo by Mika Baumeister on Unsplash
- Photo by Jonas Leupe on Unsplash