PushBell
WordPress / Web Push

Free web push,
on your own server.

It works from the moment you activate it. Signing keys are generated for you, subscribers land in your own database, and whether you have a hundred readers or a hundred thousand, the price stays the same: nothing.

Install from WordPress.org See what it does

Free / GPLv2 or later / No third-party service / English and Japanese

What your readers see

Get notified about new posts on your site

You can turn this off at any time.

Not now Allow

Colours, corners, placement and wording are all set from the admin screen. The bell in the corner is how a reader who passed on the dialog subscribes later.

Every look here is one of the plugin’s own presets, drawn from the same values it ships with. Pick one, or let them cycle.

Ready in a minute

Activate it, enter one contact address, and you are done. The signing keys are generated on first use.

Tuned to the last detail

Colours, shapes, placement, timing and copy, all decided in the admin screen with a live preview beside you.

Free, and stays free

No charge by subscriber count, no charge by message volume. Anyone can download it from WordPress.org, and the licence is GPL.

Everything on your own server

Your subscriber list lives in your own database, and your site talks to the browser push services directly.

Make it look like your site,
right here on the page

The dialog paints itself from the colours you set rather than from the theme, so it keeps its look through a theme change. Every adjustment is a setting, and the preview on the same screen follows as you type.

7 colours Light / dark / system / theme 4 placements 4 corner radii 5 pieces of copy Additional CSS

These controls are in the add-on. The free plugin ships the default look, the Additional CSS box, and this same preview.

Choose when it appears. Immediately, after a delay, or once the reader has scrolled, and from whichever visit number you pick.

A reader who passes gets another chance. Set the wait before asking again separately for the first, second and third time onwards, and the bell is there whenever they change their mind.

The first notification arrives on subscribe. A welcome notification tells the reader it worked, and proves to you that the whole delivery path is open.

The bell, too

Pick a ready-made look, tune it setting by setting, or write your own CSS. The bell is drawn from the same tokens as the dialog, so a choice made once reaches both.

4 looks, 3 bell sizes from 44px up 4 positions, and its label is yours 4 corner radii Drop shadow on or off Additional CSS
Default
Minimal
Bold
Soft
Mono
Your CSS

What PushBell can do

Delivery runs on the free plugin from end to end. Pro adds 5 things — the design controls, sending by category, and three more — and those are the rows marked PRO.

The dialog

3 triggers
Immediate, delayed, on scroll
Ask from a chosen visit number
Wait before asking again
Set separately for the 1st, 2nd and 3rd time on
Show the bell, or hide it
A reader who passed on the dialog can subscribe from it later
Ask the browser directly, for sites that want it
Category choices in the dialogPRO

Appearance

The design controlsPRO
Colour modes, 7 colours, radii, shadow, placement, the bell's spot and label, 5 pieces of copy, 4 looks, reset to default
Live preview
The dialog and the bell as readers see them, with your additional CSS applied
Additional CSS

The notification itself

Default icon image
From the media library
Badge image
For Android's status bar
Keep notifications on screen
Until the reader dismisses them
Welcome notification and its wording
Campaign parameters
Filled in from the start
Up to 2 action buttonsPRO

Per post

Skip the notification for this post
Give this post its own notification title
Give this post its own notification body
See when it was announced, in the editor

Sending and running it

Send automatically on publish
Choose which post types
Scheduled posts are handled
Manual sends, for anything else
Quiet hours
Held until the morning
How long delivery keeps retrying
One hour to one week
Batch size and concurrent requests
Schedule a broadcast for laterPRO

Checking and clearing up

Delivery history
Sent, expired and failed counted apart
Subscriber trend
Breakdown by browser
Diagnostic log at three levels
Keep the signing keys in wp-config.php
Privacy policy text added to your draft
Uninstall leaves nothing behind
Click counts per broadcastPRO

What to look at when you compare

The things worth checking when you put push notification plugins side by side. What follows is PushBell’s answer to each.

What it costs as subscribers growNothing. No charge by subscriber count or message volume
Where subscriber data livesIn your own database. No third-party service in between
Styling the opt-in dialogColours, shape, placement and copy are settings, with an Additional CSS box when you want to go further
When you switch themesIt paints from the colours you set, so it looks the same
When you edit a published postNothing goes out on its own. When you do want to announce it again, send it by hand
JapaneseAdmin screens and reader-facing copy, both included
How the signing key is handledNever rendered on any screen
Your site's other service workersLeft registered. Only the one being replaced is touched
What else you have to installNothing. The plugin is the whole install
After you uninstallNo tables and no settings left behind

Bring your subscribers
with you

Moving from Perfecty Push Notifications leaves every reader subscribed exactly as they are, from wherever they are. Nobody grants permission again, and nobody has to visit the site for it to take effect.

An Import screen appears while the other plugin is still there. Two presses move the signing keys across and copy every subscriber, each keeping the date they subscribed on.

The other plugin’s records are only ever read, so your way back stays exactly where it was.

From the very first send after the switch, notifications render properly on the old service worker.

Once the new subscription is safely stored, the registration it replaced is retired, so each reader stays subscribed once and receives each post once.

Only that one worker is touched. Every other service worker on the site stays registered, your PWA included.

Readers who allowed notifications under an earlier tool, OneSignal included, become subscribers here on their next visit. Nothing is asked of them and no prompt appears, and that tool’s worker is retired at the same time, so each post arrives once.

The FAQ on the plugin page walks through what the screen does at each step, and why the order matters.

Built so you can explain it to your readers

The less you hold, the shorter your privacy policy gets and the lighter the whole thing is to run.

Three things are stored

The delivery address the browser generated
The two keys used to encrypt for it
The date they subscribed

A subscription identifies a browser, not a person. Suggested privacy policy text is added to your site’s draft as soon as you activate the plugin.

Protected out of the box

Share a screenshot of the settings screen as it is. The signing key is never drawn on it.

Subscribe and unsubscribe are rate limited. On a salted hash of the caller’s address, held only for the length of the window.

A subscription is identified by the address the reader’s own browser made. No id naming a subscriber ever reaches the page.

Every setting reaches the front end as JSON data. Nothing you type is interpolated into markup.

PushBell Pro

Add-on / per year

The free plugin is a complete product on its own. Add the add-on when you want the look set from the admin, or delivery shaped more deliberately.

Send by category

Readers pick the categories they care about as they subscribe, and a send reaches only the people who asked for that one.

Scheduled sends

Pick the hour your readers are actually looking. Set the date and time and leave it.

Action buttons

Add up to two shortcuts to a notification, each pointing somewhere of its own.

Click counts per broadcast

See which broadcasts got read, as a number, and let that shape what you send next.

Design controls

Colours, corner radii, shadow, placement, wording, colour mode and the bell's look, all set from the admin against a live preview. Start from one of four ready-made looks, then adjust any field by hand.

[PRICE / YEAR] One-site and multi-site tiers. [AVAILABLE FROM]
Buy Pro [CHECKOUT LINK: Freemius URL]

Browsers

Chrome, Edge, Firefox and Opera on desktop and Android. Safari on macOS. On iPhone and iPad, readers subscribe from a site they have added to the Home Screen.

The admin screen breaks your subscribers down by browser, so you can see where they actually come from.

What you need

WordPress 6.7+ PHP 8.1+ OpenSSL HTTPS

All of it comes as standard on ordinary shared hosting. No external libraries to install, and no build step.

Installing it is a decision you can take back

Deleting PushBell from the Plugins screen takes its tables, its options, the meta it wrote on your posts and its scheduled events with it. What you are left with is the database you had before — which is what makes the first install a small decision.

It keeps your database clean. While it is installed, it writes only to its own four tables and its own handful of options. Notifications are rows in its own table rather than posts, so wp_posts stays the size it was and everything else is left as it was — which is what makes the delete a clean one.

What the delete takes with it

4 tables 6 options 5 post meta keys 4 scheduled events The rate-limit rows

On a multisite network it runs for every site, not only the one it was removed from.

What follows from that

Deleting the plugin is the whole procedure. WordPress runs the cleanup as part of the delete, so it is finished by the time the screen comes back.

The signing keys can be yours to keep. Pin them in wp-config.php and the delete leaves them where they are, because it only ever touches the database. Install again and it resumes with the same pair.

Subscribers go with the table. A subscription is a row in your own database and lives nowhere else, so the delete takes the list along with the rest. It is the same property, read from the other side.

Reach your readers directly, today

Install it, activate it, and the signing keys generate themselves. All that is left is one contact address and the look of the dialog.

Install from WordPress.org

Free / GPLv2 or later