I’ve spent most of this afternoon trying to understand how Web Push works, particularly under Safari on iOS. As with all things web this involves reading the documentation for 15 vaguely overlapping standards, and then divining the remaining bits via random blog posts.