NotifPWA

Fixing the notification problem with iOS.

software ThinkPad X1 Carbon Gen 10

I ran into this issue that notifications could not easily be sent to my phone. I wanted something like ntfy, but self-hosted to keep my infrastructure mine. The issue with self-hosting ntfy is that push-notifications do not work (as of 24/07/2026) on iOS, because Apple™ loves doing things differently.

iOS 16.4+ supports Web Notifications as long as the site is a PWA. This is something I can use.

What is a “PWA”?

A “PWA” is similar to an App, it can be used like an app, added to the home screen, and offer other platform specific benefits, without getting into the nitty-gritty: You can use it as if it is an app, built for the platform you are on. What makes it different though is that traditionally websites are experienced more as a place you can visit, other than a place you have. A website doesn’t (typically) have a presence on the user’s device, instead it is requested / accessed by a browser.

The PWA however, is directly available as an application (though under the hood, still uses the browser and is still a “site”).

The Fix

Now the solution is simple, set up a webserver, make the user(s) add it to their homescreen as a PWA. With this, I can send web notifications using the standard workflow, call it via an API, put it as a custom webhook on applications and I can get (near) instant notifications delivered to my Apple Watch, iPhone and other personal devices. Plus, because it is a notification it works on any platform where notifications work now. Isn’t that neat, huh?

Use

If you want to test or use the application, you can visit the production edge deployment at push.jas.pe, this instance you can add your own rooms and push notifications to them, there are a few that I use, but this also lets you set up user-side secrets, which are required to receive notifications. If you push with a secret only users with a matching secret & room will be notified. Multiple users can use the same room, but only receive notifications from that room if the secret matches, so you can filter based on whether or not you sent the notification or not.

Links