Fabio Manganiello<p><a class="hashtag" href="https://manganiello.social/tag/platypush" rel="nofollow noopener noreferrer" target="_blank">#Platypush</a> + <a class="hashtag" href="https://manganiello.social/tag/webpush" rel="nofollow noopener noreferrer" target="_blank">#WebPush</a> <a href="https://git.platypush.tech/platypush/platypush/issues/417" rel="nofollow noopener noreferrer" target="_blank">loading</a></p><p>I’ve taken quite a deep dive in these days into the WebPush implementation and the details of the <a class="hashtag" href="https://manganiello.social/tag/vapid" rel="nofollow noopener noreferrer" target="_blank">#VAPID</a> specification for authenticated push notifications through <a class="hashtag" href="https://manganiello.social/tag/pwa" rel="nofollow noopener noreferrer" target="_blank">#PWA</a>.</p><p>I’m now testing things in the Platypush web app - aiming to support custom notifications providers too, so dispatching notifications to your mobile devices through your ntfy or NextPush server can also be supported.</p><p>The next release of Platypush may finally include native Web notifications through the PWA layer.</p><p>You should then be able to get notifications for all the media playing on your devices, and control them just like you would do with a Spotify/YouTube media notification, without having to use intermediary layers such as Tasker, Termux, Pushbullet or ntfy. Or get mobile notifications for the interactions with your custom voice assistants. Or create your custom push notifications (e.g. on your event hooks, custom procedures or crons) and dispatch them securely to your mobile devices through your own ntfy server. All (hopefully) without the need of a native Android app - power of Web pushes!</p> <p>I only wish that the tools to implement WebPush/VAPID in <a class="hashtag" href="https://manganiello.social/tag/python" rel="nofollow noopener noreferrer" target="_blank">#Python</a> applications were as mature as those available for the JS ecosystem. <a href="https://pypi.org/project/py-vapid/" rel="nofollow noopener noreferrer" target="_blank">py-vapid</a> seems reasonably well designed, but it’s still a bit of an early project and it’s not even available on any major package managers (which is a big no-no for core Platypush features). And it only takes care of signing VAPID claims, not of packing and delivering WebPush requests end-to-end. I’ve eventually resorted to doing my own implementation with <code>ecdsa</code>, plus <code>jose</code> to take care of the JWT encryption boilerplate. I may write a little blog article if it ends up working.</p><p><a href="https://git.platypush.tech/platypush/platypush/issues/417" rel="nofollow noopener noreferrer" target="_blank">https://git.platypush.tech/platypush/platypush/issues/417</a></p>