Connecting...
ET
im@edisontkp.com
Dashboard
notify.ezy.link · Live push server
🔔
Enable Web Push Notifications
Subscribe this browser to receive live push notifications from Notify.
TOTAL SUBSCRIBERS
12,400
↑ +340 this week
WEB PUSH
5,200
↑ +120 this week
APP PUSH
4,800
↑ +158 this week
DESKTOP
2,400
↑ +62 this week
🌐
Web Push
Browser-native via Web Push Protocol. Chrome, Firefox, Edge, Safari.
SENT TODAY
8,421
CTR
6.2%
DELIVERED
98.4%
OPT-IN
14.1%
📱
App Push
Native iOS & Android via APNs and FCM. Rich media, actions, deep links.
SENT TODAY
11,230
CTR
8.7%
DELIVERED
96.1%
OPT-IN
61.3%
🖥️
Desktop
Windows, macOS, Linux via Electron or system APIs. High-visibility.
SENT TODAY
3,840
CTR
12.4%
DELIVERED
99.1%
OPEN RATE
34.2%
Live ActivityView all →
Campaign "New Feature Drop" sent
🌐 Web Push5,200 recipients · 2 min ago
Transactional alert: Order #8821
📱 App Push1 recipient · 5 min ago
Desktop: System maintenance alert
🖥️ DesktopAll admins · 12 min ago
Segment "Power Users" flash promo
📱 App Push1,240 recipients · 28 min ago
Quick Send
Compose Campaign
Create and schedule multi-channel campaigns
SEGMENT:
All Users
Power Users
Inactive 7d
Malaysian Market
Enterprise
+ Custom
📢Campaign Builder
Sending to 12,400 subscribers
Live Preview
Web — Chrome
🌐
notify.ezy.link
Notification Title
Your message here...
App — iOS
9:41●●● 100%
📢
Your App · Notify
Notification Title
Your message here...
now
Desktop — macOS
🖥️
Notify
now
Notification Title
Your message here...
Open
Later
Dismiss
Analytics
Channel performance and engagement
Notifications Sent
Web
App
Desktop
Web CTR
6.2%
↑ +0.8% vs last week
App CTR
8.7%
↑ +1.2% vs last week
Desktop CTR
12.4%
↑ +2.1% vs last week
Audience
12,400 total subscribers
SUBSCRIBERCHANNELSSUBSCRIBEDLAST SEENSTATUS
ET
im@edisontkp.com
Mar 16
Just now
Active
AT
ahmad.t@company.my
Jan 12
2 hrs ago
Active
SN
siti.n@glc.gov.my
Feb 3
1 day ago
Active
ML
mei.l@sme.com.my
Mar 1
3 hrs ago
Active
DW
d.wong@tech.co
Nov 14
14 days ago
Inactive
API Keys
Live credentials for notify-push worker
🔑 Live Credentials● Active
API Secreted95b129ad1968cdf970b444cafc95c7efd099916ce1aef86ce7371535795aa0click to copy
VAPID Public KeyBDBtPpOfhTEFboLXIVG3ScJAaJ27_EOlCwC644iw0bV0YwWHGZmWVz9x0FfHtGJBBMYrQL963YwQ1c8aiO_9m6gclick to copy
VAPID Subjectmailto:im@edisontkp.comclick to copy
KV Namespace734cf4753ece48ff9c1811c9529922f2click to copy
Worker URLhttps://notify-push.xtremecorecomputer.workers.devclick to copy
Production URLhttps://notify.ezy.linkclick to copy
⚠️ Pending Secrets● Needs Setup
FCM_PROJECT_IDGet from Firebase Console → Project Settings → Service Accounts
FCM_CLIENT_EMAILfirebase-adminsdk-xxxxx@project.iam.gserviceaccount.com
FCM_PRIVATE_KEY-----BEGIN PRIVATE KEY----- (from .json download)
APNS_KEY_ID10-char key ID from developer.apple.com → Keys
APNS_TEAM_ID10-char Team ID (top right of Apple Developer portal)
APNS_BUNDLE_IDcom.yourapp.ios
APNS_PRIVATE_KEYFull content of .p8 file
Set missing secrets
# Run in your terminal (CF token already in wrangler.toml) wrangler secret put FCM_PROJECT_ID --name notify-push wrangler secret put FCM_CLIENT_EMAIL --name notify-push wrangler secret put FCM_PRIVATE_KEY --name notify-push wrangler secret put APNS_KEY_ID --name notify-push wrangler secret put APNS_TEAM_ID --name notify-push wrangler secret put APNS_BUNDLE_ID --name notify-push wrangler secret put APNS_PRIVATE_KEY --name notify-push
Web Push
Browser notifications via VAPID / RFC 8291 — Live on notify.ezy.link
// 1. Register service worker (sw.js is in your Pages deployment) const reg = await navigator.serviceWorker.register('/sw.js'); await navigator.serviceWorker.ready; // 2. Get VAPID public key from live server const { publicKey } = await fetch('https://notify.ezy.link/vapid-key').then(r => r.json()); // 3. Subscribe const sub = await reg.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: publicKey }); // 4. Register with Notify await fetch('https://notify.ezy.link/register', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_SECRET', 'Content-Type': 'application/json' }, body: JSON.stringify({ channel: 'webpush', subscription: sub, userId: 'user_123' }) });
App Push
Native iOS (APNs) & Android (FCM) — Live on notify.ezy.link/send/apns & /send/fcm
// Android — get FCM token and register FirebaseMessaging.getInstance().token.addOnSuccessListener { token -> registerWithNotify(token, channel = "fcm", platform = "android") } // iOS — get APNs token and register (Swift) func application(_ app: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken data: Data) { let token = data.map { String(format: "%02x", $0) }.joined() // POST to https://notify.ezy.link/register registerWithNotify(token: token, channel: "apns", platform: "ios") } // Send via API POST https://notify.ezy.link/send/fcm Authorization: Bearer YOUR_API_SECRET { "token": "FCM_TOKEN", "title": "Hello!", "body": "From Notify" }
Desktop
Windows, macOS, Linux via Electron / OS notification APIs
// Electron main process const { Notification } = require('electron'); const notif = new Notification({ title: 'System Alert', body: 'Standup in 10 minutes', icon: path.join(__dirname, 'icon.png') }); notif.show(); notif.on('click', () => mainWindow.focus()); // Or via Notify REST API POST https://notify.ezy.link/send/apns { "token": "APNS_TOKEN", "title": "Alert", "body": "Message", "pushType": "alert" }