Perfecty Push Notifications


Push Notifications that are self-hosted, you don’t need API keys to integrate with external Push Notifications providers that will charge you later. It’s Open Source and the information is stored in WordPress, so that you can send Push Notifications directly from your server for free!

In a rush looking for Push Notifications alternatives now that you’ve exceeded the free-tier of your current provider? Loosing your users every time you change your Push Notifications provider? Worried about where the Push Notifications information is stored? With this plugin you don’t worry about that.

Easily migrate your users from other providers, send custom Push Notifications, or automatically when publishing a post, and see the stats in your Dashboard.


  • Self-hosted: total control of your information, and no need of third-party integrations.
  • Migrate users from other Push Notifications providers like OneSignal.
  • PWA & AMP Friendly (Tested with Super PWA and AMP for WP plugins).
  • Free and Easy.
  • Send Push Notifications on posts publishing.
  • Send custom Push Notifications: you can easily change the icon, the image or the URL to open.
  • See the stats in the Dashboard.
  • Customizable public widget.
  • The user authorization tokens stay in your server when they subscribe to receive your Push Notifications.
  • Easily comply with GDPR: all the Push Notifications information is processed and stored in your server.
  • Open Source Push Notifications: no hidden fees and you own your data.
  • Offline browser Push Notifications through Push API.

gmp extension for message encryption (optional)



Want to check the code?

This plugin uses the Chart.js library for the admin stats.

Perfecty Push installation

  1. Download the plugin

  2. Install it and activate it

  3. Go to the Perfecty Push Notifications > Dashboard section and start sending Push Notifications

Note: Check the FAQ if you miss the gmp extension.


  • Dashboard and Push Notifications stats
  • Send a new Push Notification
  • Public widget (subscribe prompt)
  • Public widget (opt-out)
  • Send Push Notifications on post publishing
  • Notifications admin
  • Users admin
  • Settings


I am using a third-party Push Notifications provider, can I migrate my users to my server?

Absolutely, Perfecty Push can override the previous service worker from your user’s browser. Once they visit your site, the worker is automatically replaced and you can start sending Push Notifications directly. For that you need to first remove your provider’s JS SDK, and then enable the Remove conflicting workers option in Perfecty Push. Go to Perfecty Push > Settings > Public Widget.

After v1.0.7 Perfecty Push uses the /perfecty/push scope (you can also customize it), so it’s friendly with any PWA/AMP plugin that uses the root scope (e.g. Super PWA plugin). However, if you use the Remove conflicting workers option, it will deregister any existing worker, so be careful with this option.

Why do I need the `gmp` extension?

Sending push notifications involves encryption and gmp (GNU Multiple Precision) brings the best performance for such operations.

The gmp extension is optional in PHP >= 7.3. In PHP 7.2 you can’t generate the VAPID keys without it, however you can still generate them with openssl. In any case, it’s recommended to use gmp for better performance.

How do I install the `gmp` extension?

It depends on the operating system, but in theory you install it as a regular PHP extension. More information: Install the gmp extension

Is this working in production?

This plugin has been deployed in a real site with more than 800.000 monthly visits and around 3.000 Push Notifications subscribers (~90.000 notifications/month), however we recommend you to test it before deploying it to a production environment.

How do I report a bug?

You can create an issue in our Github repo:


March 16, 2021
Love & respect to all developers, who are developing this plugin ! Just awesome ! I love this open source project..
February 16, 2021
I was in the process of writing a plugin that did exactly what this does when I found it. It's super well written and does what it says. Quite amazing that this doesn't have more traction. Exceptionally well done guys!
January 2, 2021
It has basic functionalities, but it works nicely and with no effort.
Read all 4 reviews

Contributors & Developers

“Perfecty Push Notifications” is open source software. The following people have contributed to this plugin.


“Perfecty Push Notifications” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “Perfecty Push Notifications” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Add options to send featured image and customize notification title in notifications sent on post publishing. Thanks to @mociofiletto
  • Removing wp-i18n variable definitions in JS from the global scope. Thanks to @mociofiletto


  • PWA and AMP Friendly (Tested with Super PWA and AMP for WP plugins)
  • Support MySQL < 5.6 (max index key=767)
  • Improving Internationalization
  • Apache mod_security, Nginx default configuration and WAF friendly


  • Added WordPress 5.7 support


  • Implement internationalization. Thanks to @mociofiletto
  • Support older WordPress versions


  • First version of the plugin with basic functionality