Real-time & Push Notifications
Two related but separate things keep WhatsMine feeling instant:
- Real-time — live updates inside the app (new inbox messages, typing indicators, unread badges).
- Push notifications — browser/device alerts when the app isn't open.
Real-time (Pusher or Reverb)
Live updates use WebSockets. You have two options.
Option A — Pusher (hosted, easiest)
Admin location: Admin → Real-time Settings (/admin/pusher-settings)
- Create a free app at pusher.com (Channels product).
- Copy its App ID, Key, Secret and Cluster.
- Enter them in Admin → Real-time Settings and enable real-time.
- Click Test to confirm.
📸 Screenshot: The Real-time (Pusher) settings page.
You can also set these in .env (PUSHER_* and VITE_PUSHER_*) and BROADCAST_CONNECTION=pusher.
Option B — Reverb (self-hosted, no third party)
Laravel Reverb runs your own WebSocket server. Set BROADCAST_CONNECTION=reverb, configure the REVERB_* variables, and run the server as a supervised process:
php artisan reverb:start --host=0.0.0.0 --port=8080
Proxy a WebSocket subdomain to it via your web server. See Deployment.
Which should I choose?
Pusher is the quickest path and needs no extra server process. Reverb avoids a third-party dependency and ongoing cost, at the price of running and scaling the WebSocket server yourself. Both deliver the same in-app experience.
If real-time isn't configured, the app still works — it just won't update live; users see new messages on refresh.
Push notifications
WhatsMine supports browser push so users get alerted even when the tab is closed.
Web Push (built-in, free)
- Generate VAPID keys:
php artisan webpush:vapid - Add the generated
VAPID_PUBLIC_KEYandVAPID_PRIVATE_KEYto.env.
Users then enable browser notifications from their notification preferences.
OneSignal (optional)
For richer push, add OneSignal:
ONESIGNAL_APP_ID=your-app-id
ONESIGNAL_REST_API_KEY=your-rest-key
Firebase (optional)
Firebase web push is configured in Admin → Settings → Firebase (API key, auth domain, project ID, app ID). See Branding & Settings.
➡️ Next: Storage.