User:Mconnor/Past/Notifications
Overview
The Notifications project is intended to enable direct communication between websites and users via the browser, in as close to real time as possible, without requiring users to leave pages open.
One of the core principles of the original Weave project was to enable services like this in a privacy-first context. To that end, we will look to build this on top of strong crypto, so that messages are not readable in transit, even through the server.
Client
Client integration with Firefox (Desktop and Mobile) has the following initial requirements:
- Create a content-exposed API for granting sites permission to notify users. This will return the information necessary to securely pass messages to the server.
- Implement generation and syncing of keys to multiple devices (pub/priv? AES key per site?)
- Integration of an XMPP (or similar) client with Firefox
- Ensure that the XMPP client understands how to set "away" so that notifications are broadcast intelligently
- Implement UI for displaying notifications received and decrypted
Server
Building a server for this project has the following initial requirements:
- Implement a server (using XMPP or similar) that can track clients and send messages meant for that user
- Integrate this server software with existing Mozilla Services authentication store
- Implement reliable offline messaging support
- Create an interface capable of interacting with iOS push notification systems
- Build all pieces to be horizontally scalable to ensure high performance and availability