Web Push on iOS, Android and PC

I want to share a small Streamlit component that implements Web Push notifications. It provides browser subscribe/unsubscribe, JSON-backed demo persistence, and a minimal prototype app.

This repo is a stripped down version of my web push implementation that uses a MongoDB as persistence layer. Persistence is needed so that you can push to Users that are not currently online in the streamlit app.

It is build on top of pywebpush and I used the Apple docs to make it work on iOS. One complication I faced on iOS is that you need to “install” the app as an Icon to the Home screen, so that it can receive User Permissions. This is realized via static manifest delivery from streamlit server.

Android seems to work out of the box, but I have not tested on a personal device.

Feel free to ask any questions.