Coordination message about Push Notifications modules
There seems to be 5 different projects that are doing the same thing, each one focusing on a different part, but overall they are overlapping:
- Web Push API : https://www.drupal.org/project/web_push_api
- WebPush : https://www.drupal.org/project/webpush
- Web Push Notification : https://www.drupal.org/project/web_push_notification
- Browser push notification : https://www.drupal.org/project/browser_push_notification
- Advanced Progressive Web App : https://www.drupal.org/project/advanced_pwa
All these 5 modules are offering native support for push notifications, implementing Drupal integration of the same PHP library, without using any external service.
Don't you think that it would be better to merge all the work in one single module, and join efforts there to create a better experience for the drupalists?
I believe this would be more close to drupal's philosophy.
I'm starting this discussion to see what are the intentions.
PS: I will cross-publish this message to all the relevant projects, so please do not mark it as spam.
PS2: I am the maintainer of the WebPush module (2nd in the list) which only exists for D7.
Comments
Comment #2
efpapado commentedComment #3
br0kenHi there. I'm happy to somehow merge the efforts.
For now this projects uses forked
web-push-phplib (https://github.com/BR0kEN-/web-push-php) that includes https://github.com/web-push-libs/web-push-php/pull/268. The patch allows a Drupal entity to be a WebPush subscription. I hope the forked package won't be taking place for too long and the maintainer respond soon.Now about the things I do not want this project to have (they're listed on project's page).
Therefore, this project provides the API only. It does not give the logic for registering service workers, configuring Web Push API authorization, subscribing/unsubscribing (no single line of JS) etc. Only storage for subscriptions and the API to send notifications to them.
I'm a big fan of composing applications from small parts and believe this project can be used as a dependency for the other listed projects since they provide extended functionality (which I do not want to maintain/be responsible for). Leveraging this module's API allows building a notification dispatcher service with the logic that fits specific needs. JavaScript is also on someone since there are plenty possible behaviors.
Here's the example of
WebPushClientservice I've built for one of the real projects:Comment #4
ahmed-ayman commentedI think that this module is just good for an API that other projects can be using for their custom logic.
like, to send notification for custom entities presave or whenever a specific event happens.
So, I think that we can mark it as Won't fix?