ooni / ooni/probe-multiplatform

Push Notifications Plan

Open
#1,490 1 comment 0 reactions 1 assignee View on GitHub

@sdsantos is already working on this.

Since Jul 27, 2026.

Dominant language
Kotlin
Stars
91
Forks
13
Avg merge
3d 9h
Merged PRs (30d)
28

Description

Plan for an implementation of push notifications that works with and without Firebase Cloud Messaging and Apple Push Notification. On desktop and Android's F-Droid release we can't use the Firebase's cloud messaging services. So the apps should have alternative ways to check if there are new notifications to show to users.

Firebase Cloud Messaging only approach:

  • Apps send device tokens to the back-end, whenever they are changed, including some filtering details like the country code of the last network measured
  • Back-end uses device tokens to send notifications to apps through Firebase Cloud Messaging service

Pooling fallback:

  • Back-end offers an API endpoint to retrieve all notificiations sent (can be filtered by country code, or other parameters necessary)
  • Apps pool the endpoint periodically and show new notifications

Push fallback: (if time-sensitivity is important, specially on desktop)

  • While the app is running (always on desktop), it can open a websocket with the back-end to get new notifications instantaneously

To be considered:

  • Do we need analytics on how many users open or interact with the notifications?
  • Are we just showing simple text notifications with potential call for action with a link? Or do we want to specify complex behaviors, like start a test, or enable a setting?

An interesting link from GrapheneOS on push notifications implementations on Android.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.