Push Notifications That People Do Not Immediately Disable
The technical setup for push is a day of work. Designing notifications people actually keep enabled is the harder problem — and the one that decides whether push was worth building.
Getting push notifications working is a solved problem. Getting them to still be enabled a month after install is not.
Ask at the Right Moment
Requesting notification permission on first launch is the single biggest mistake. The user has no idea what your app does yet, so the safe answer is no — and on iOS you only get asked once.
Ask after the user does something that implies they want updates: placing an order, following a course, saving a search. Show a soft in-app explanation first, then trigger the OS prompt only if they say yes.
Every Notification Needs a Destination
A notification that opens the home screen wastes the user's tap. Include a route in the payload and handle it on launch.
PushNotifications.addListener('pushNotificationActionPerformed', (action) => {
const route = action.notification.data?.route;
if (route) router.navigate(route);
});
Respect the iOS 50-Notification Limit
iOS only holds 50 scheduled local notifications per app. Beyond that it silently drops them. If you schedule reminders in bulk, you need a priority strategy: schedule the nearest N, and top the queue back up whenever the app opens.
Set a Frequency Cap and Honour Quiet Hours
Cap sends per user per day server-side, not in the client. And never send at 3am in the user's timezone — store their timezone at signup and queue accordingly.
Give Granular Controls
If the only choice is all-or-nothing, users choose nothing. Separate categories — order updates, reminders, marketing — let someone mute the noise and keep the signal.
Handle Dead Tokens
Tokens expire when apps are reinstalled. FCM and APNs both tell you; delete those rows. Otherwise your send queue slowly fills with failures and your delivery metrics become meaningless.
The Test That Matters
Before you send anything, ask: would I be glad to receive this on my own phone, at this hour? If the answer is no, it is a marketing email, not a notification.