January 12th, 2014

When Apple announced Safari push notifications, I was really excited. Send pushing notifications to the desktop is a great way to keep users engaged with a (web) app.
Instead of sending for example e-mail updates, users can be notified using non-intrusive toast messages. Even when their browser is closed, similar to what users are used to on mobile devices.

Use cases are for example breaking news updates from a new site, or status updates from friends on social media sites.

APNS

Safari is the first browser that brings push notifications initiated from websites, to the desktop.
The Safari push notification service (APNS) – originally developed for iOS – is one of the new features Mavericks brings to OS X.

Having used this service in several projects, I’m really excited about the possibilities. But of course, only a small segment of web site visitors use Safari+MacOS. This means, at the moment, APNS can not be used for a broad audience.
Another downsite to APNS is, that you need a paid Apple developer account ($99/year) to be able to use APNS.

So, what are the alternatives?
Naturally, the best alternative would be other major browsers support desktop push notifications. But as far as I know, none of the major browsers currently support APNS like functionality (please correct if I’m wrong in the comments).

Chrome

Chrome comes closest to APNS like functionality: it has its own notification center build in for toast notifications, and supports push notifications. But this comes with some restrictions:

Web sites can display toast notifications, but only client side (via javascript) initiated

Push notifications are supported, but only from extensions

Firefox and IE

Firefox and IE don’t support desktop push notifications at the moment.
It seems desktop push notifications are on the Firefox roadmap since 2012. But current status remains unknown. Javascript toast notifications are supported though.

IE also has no support for push notifications from web apps, but IE 11 does provide support for live tiles for pinned sites. This means users need to add your site to their home screen to receive live updates.

3th party Push services

As long as web sites can’t push notifications directly, 3th party notification services may provide an alternative.

For mobile devices, I’am a fan of general notifications services like Prowl (iOS) and Pushover (Android/iOS).

Pushover, sends push notifications from API or web to devices using Pushover app:

Pro: iOS and Android support

Con: (iOS) app is relatively expensive ($4.99)

Push via API only per API key, not possible to push a message to list of API keys (users) in one request. Pushover does support delivery groups though, but there is no API support for adding users to a group at the moment.

Modern UI

Prowl, sends push notifications from API or web to devices using Prowl app:

Pro: API supports push to list of devices in a single POST request

Con: no Android app

Cheaper than Pushover, but still relatively expansive: $ 2.99

Active user support via Twitter, e.g. during service interruptions.

Both provide an easy to use API (authentication using API key, no oAuth… yeeeeh), so any (web) app can easily send push notifications to subscribed devices.

It would be great if there was as Chrome extension for Prowl or Pushover to bring notifications to the desktop using the same API. This would also mean users can receive a notification on both desktop and a mobile devices, so notifications are truly location independent.
But, unfortunately, for both services there is no Chrome extension available at the moment.

Pushbullet

A nice service that does have a Chrome extension is Pushbullet. Pushbullet can send push notifications to Android and Chrome, from its web interface or API. First impression is definitely good, but what I think is really missing at the moment:

API support for push to friend’s devices, or in general devices other than your own

API method for ‘push to all registered devices’. Currently, you need to request a list of devices, and push to a specific device ID.

You’re right in saying that Pushover sends notifications to all divices registered to a single API key.
But, with the Pushover API, it is not possible to send notifications to a list of API keys/users, in one request.
This is useful for example, if have a list of API keys (provided for example by subscribed users), and you want to send
notifications to all subscribers in one request. Prowl for example does offer this possibility.

And although with Pushover you can create distribution groups, it is not possible to add people to a group via the API. So subscribing people via some kind of automated process (e.g. via a subscription form on a site) is difficult.