UnifiedPush for email via IMAP WebPush
Text for the NLnet NGI MobiFree application form (https://nlnet.nl/propose/).
Proposal submission code: 2024-10-535
Thematic Call
- NGI Mobifree
Contact information
- Mr. Julian Foad
- julian@foad.me.uk
- +44 #### ######
- Rooted Software Ltd.
- UK
General project information
- "UnifiedPush for email via IMAP WebPush"
- https://lab.trax.im/up-for-imap/up-for-imap
Abstract: whole project & outcomes
This project brings freedom-tech push notifications to mobile email.
Email apps are a priority for wider adoption of UnifiedPush, the standard for independent mobile push notifications. Providers wait for app support, apps wait for server support, but mail servers are diverse.
This project implements:
- an IMAP extension for WebPush support, in one IMAP server;
- UnifiedPush via IMAP-WebPush, in one mobile IMAP client.
The chosen IMAP server and client are likely to be Dovecot (as used in mailcow) and K9-mail (now a Thunderbird project).
The result will:
- demonstrate the feasibility of freedom-tech push notifications for email;
- demonstrate the feasibility of adding it to common existing (IMAP) mail servers;
- provide a proof-of-concept implementation for one server and one client.
This implementation will initially follow a draft specification for IMAP WebPush Extension. This work may support and inform an update to that spec.
As a side effect, adding web push to an IMAP server could potentially also benefit web mail applications.
Prior involvement
Discussed with and supported in principle by UnifiedPush key developer 'S1m'.
S1m is going to propose a draft RFC for IMAP extension, as part of their current NGI grant. I will be following this.
I have been involved with projects in this scene including UnifiedPush, ntfy as a UP server, UP for matrix, /e/OS, LineageOS -- building, self-hosting, experimenting, contributing a little documentation, commenting on bugs, change proposals and discussions.
Requested support
- €xxx
Labour: 256 hours(research and development, 16 h/week for 16 weeks) x €xxx/hour: €xxx.
Capital: possibly 1 or 2 additional freedom phones, second-hand, for testing: say €240.
This project has no other funding sources.
Compare
UnifiedPush has been added to many other apps. What makes email challenging is the variety of servers in use. A server-specific solution is therefore ineffective, and so the IMAP generic add-on technique is used. The most similar previous efforts may be where UP has been added to app servers by indirect methods, such as "mollysocket" which "works like a linked device... connected to the Signal server."
UnifiedPush through the JMAP protocol suite's push provision has already been implemented in some mail software such as the "ltt.rs" email app and the "stalw.art" email server.
DeltaChat it an interesting comparison, a slightly different usage of IMAP. It could potentially benefit from UnifiedPush. Currently it uses IMAP IDLE (like most mail apps) but it does have the distinction of being related to the COI project that wrote the earlier draft IMAP WebPush extension spec. Perhaps they once intended to use it. It may be useful to explore if there is more history or interest on their side.
Technical Challenges
The outline of this project does not suggest significant technical challenges lie ahead.
Writing a push plug-in for Dovecot looks to be straightforward; for this it supports scripting in LUA or coding in C, and provides interface documentation.
Writing UnifiedPush support for K9-mail should be similar to other apps that have been done before, so there are examples to follow.
The UnifiedPush protocol and interfaces are documented for both server and app sides.
Challenges may arise from incompatibilities in details.
Ecosystem
UnifiedPush is central to this project. I have been in touch with UnifiedPush since it emerged a few years ago. I expect to align this effort with UnifiedPush goals and standards, especially the IMAP WebPush extension. Through UnifiedPush I can also reach people involved in related projects.
There may by other communities involved in using Web Push with email servers. The JMAP protocol suite explicitly supports push notifications, and there are a few servers and clients implementing it, though not yet widely used. I will try to contact those.
The freedom mobiles OS ecosystem that I have researched the most is the android-compatibles, like LineageOS, microG, Murena /e/OS, CalyxOS, GrapheneOS. These could potentially provide UnifiedPush servers and/or OS support in future. I will reach out and try to show them why this matters to them. Other freedom-phone ecosystems, GNU-Linux-compatibles (PostmarketOS, Purism-Librem...) and SailfishOS (Jolla) may be interested too.
Potentially also DeltaChat as mentioned in the Comparison section.
Attachments
(none)