
In the previous post, I’ve had a look at UnifiedPush (UP) and how it works in theory to deliver push notifications from servers to apps on mobile devices. UnifiedPush has been designed to be de-centralized, and if one does not want to self-host a UP server, there are a number of different transport options and UP server providers available for use. I use two apps on my Android device with UnifiedPush, Tusky, a Mastodon feed reader and Molly-FOSS, a de-googled Signal messenger fork. While I was tempted to go straight for a description of how Molly-FOSS uses UP, I’ve decided to defer that into a separate post and rather go for a description of how Tusky uses UP, as the setup for this use case is simpler. Let’s go from simple to more complicated!
I’ve been using Mastdon and the Tusky app for many years now as I never really felt at home at Twitter. In Mastodon, one can send private direct messages (DM) or public messages in which people can be mentioned with the ‘@’ sign. Should I get a DM or be mentioned in a post, it would be nice if I could get notified immediately. So far, that didn’t happen, because Tusky only polls for content every 15 minutes. I very much appreciate this as, it is very power efficient on mobile devices. These days, however, Tusky comes with UnifiedPush support to signal DMs and mentions immediately. All that is required is to configure UnifiedPush on Android.
The Super Simple Option: SunUp

In the simplest case, you don’t run the UnifiedPush infrastructure yourself, but instead use one of the publicly available options. The most simple one is Mozilla’s UnifiedPush server. To use it, the only action required is to install the SunUp app on your Android device from the F-Droid store and to give it permission to run in the background by allowing battery optimization to be switched-off for it. That’s all there is to it, no configuration required in the SunUp app and no configuration required in Tusky! Tusky automatically detects that SunUp offers a UnifiedPush API and uses it. SunUp in turn automatically connects to Mozilla’s push notification server infrastructure. Notifications for Mastodon DMs and mentions are now delivered immediately. Done!
The Super Simple Option 2: Ntfy
Another super simple option is to use the ntfy app and the (centralized) ntfy server as UnifiedPush provider. Setup is just as straight forward as above: Download the app, give it permissions to run in the background (battery optimization set to off) and Tusky will detect it as a UP API app automatically. It’s also possible to self-host a ntfy server, in which case further configuration in the app and your own server is required. I didn’t try this out so I don’t know how much effort this would be.
The Somewhat More Advanced Option: Conversations
Yet another way of transporting app notifications is by using an XMPP server, an XMPP to UnifiedPush Gateway and the Android Conversations messenger app. I do have my own XMPP server at home but no UnifiedPush Gateway. I could set-up my own but I chose to use the Gateway set up by the Conversations author behind his own XMPP server. Sounds all very complicated, but the setup is pretty much straight forward: In the Conversations messenger app on Android, which I use for my messages, voice and video telephony, I activated ‘UniversalPush’ in the settings. There is an option to use the ‘default’ UP gateway or to configure a self hosted one. I just left the option as it was and only activated the UnifiedPush functionality in Conversations. And that was already it, my Mastodon DMs and mentions are now also delivered instantly.
While the setup on Android is simple, the transmission path is actually a bit, well, let’s say adventurous: Mastdon will sent a notification to the UP to XMPP gateway hosted in front of the XMPP server of the Conversations author. From there it travels as an XMPP message to my self-hosted XMPP server. And from there it is further sent on to my Android device. Surprisingly, it has worked without a glitch so far.
The Royal Option: Run the UniveralPush Server Yourself
And finally it is possible to run a self-hosted UniveralPush server. That requires some setup though and I don’t see the need for me personally at the moment, because both Mastodon and Molly-FOSS are not critical applications for me at the moment. Therefore I don’t need to control the full transmission path. Should that change, I would probably set-up a UniversalPush to XMPP bridge in front of my own XMPP server.
Summary
Despite there being so many options, UniversalPush is easy to use: Just download an app that provides a UniversalPush API on Android and automatically connects to a public UP server and you are done!
So far, so good, but of course the story doesn’t end here. In the next post: How to use UP with Molly-FOSS, the de-googled Signal messenger fork.