Problem / Motivation
It would be great if Bulwark Mobile supported UnifiedPush as an alternative to Firebase Cloud Messaging (FCM) on Android.
Currently, push notifications depend on FCM. This means notifications do not work on devices without Google Play Services, such as GrapheneOS installations where sandboxed Google Play is not installed.
Motivation
Bulwark is an excellent fit for self-hosted mail setups such as Stalwart, but requiring FCM for Android push introduces a Google dependency into an otherwise self-hostable stack.
Supporting UnifiedPush would enable setups like:
Stalwart → Bulwark Relay → UnifiedPush → Bulwark Mobile
This would allow users to use distributors such as ntfy (including self-hosted instances) and receive reliable background notifications without Google Play Services.
Possible implementation
Since Bulwark already uses the relay between JMAP push subscriptions and FCM, UnifiedPush could potentially be implemented as an additional delivery backend rather than replacing FCM.
For example:
- FCM → existing/default Android push
- UnifiedPush → Google-free Android push
- WebPush → existing web/PWA push
The actual mail synchronization could continue to happen through JMAP after receiving the wake-up notification, so the UnifiedPush message would only need to trigger the existing sync mechanism.
A provider abstraction on Android could also allow FCM and UnifiedPush to coexist, with the user selecting the preferred push provider.
Why this would be useful
- Notifications on GrapheneOS without sandboxed Google Play
- Support for other de-Googled Android distributions
- Fully self-hostable notification path
- No mandatory Firebase/Google dependency
- Fits particularly well with Bulwark's self-hosted/Stalwart use case
Thanks for considering it!
Proposed Solution
Add UnifiedPush as an alternative push notification provider on Android while keeping FCM as the default/available option.
Ideally, Bulwark could detect an available UnifiedPush distributor and allow the user to select UnifiedPush instead of FCM. The existing JMAP push/relay architecture could remain unchanged, with UnifiedPush providing the final delivery step to the Android client.
This would allow setups such as:
Stalwart → Bulwark Relay → UnifiedPush (e.g. ntfy) → Bulwark Mobile
After receiving the push notification, Bulwark could use its existing JMAP synchronization logic to fetch the actual changes, just as it does with FCM today.
This would provide reliable background notifications on GrapheneOS and other Google-free Android systems without requiring Google Play Services.
Alternatives Considered
No response
Feature Area
None
Mockups / Examples
No response
Additional Context
No response
Problem / Motivation
It would be great if Bulwark Mobile supported UnifiedPush as an alternative to Firebase Cloud Messaging (FCM) on Android.
Currently, push notifications depend on FCM. This means notifications do not work on devices without Google Play Services, such as GrapheneOS installations where sandboxed Google Play is not installed.
Motivation
Bulwark is an excellent fit for self-hosted mail setups such as Stalwart, but requiring FCM for Android push introduces a Google dependency into an otherwise self-hostable stack.
Supporting UnifiedPush would enable setups like:
Stalwart → Bulwark Relay → UnifiedPush → Bulwark MobileThis would allow users to use distributors such as ntfy (including self-hosted instances) and receive reliable background notifications without Google Play Services.
Possible implementation
Since Bulwark already uses the relay between JMAP push subscriptions and FCM, UnifiedPush could potentially be implemented as an additional delivery backend rather than replacing FCM.
For example:
The actual mail synchronization could continue to happen through JMAP after receiving the wake-up notification, so the UnifiedPush message would only need to trigger the existing sync mechanism.
A provider abstraction on Android could also allow FCM and UnifiedPush to coexist, with the user selecting the preferred push provider.
Why this would be useful
Thanks for considering it!
Proposed Solution
Add UnifiedPush as an alternative push notification provider on Android while keeping FCM as the default/available option.
Ideally, Bulwark could detect an available UnifiedPush distributor and allow the user to select UnifiedPush instead of FCM. The existing JMAP push/relay architecture could remain unchanged, with UnifiedPush providing the final delivery step to the Android client.
This would allow setups such as:
Stalwart → Bulwark Relay → UnifiedPush (e.g. ntfy) → Bulwark MobileAfter receiving the push notification, Bulwark could use its existing JMAP synchronization logic to fetch the actual changes, just as it does with FCM today.
This would provide reliable background notifications on GrapheneOS and other Google-free Android systems without requiring Google Play Services.
Alternatives Considered
No response
Feature Area
None
Mockups / Examples
No response
Additional Context
No response