Ships with the mobile app
Push notifications need a native app to deliver them, so they arrive with the Pheidi mobile app, which isn't in the app stores yet. Server-side delivery is switched off as well, and stays off until a notification hub is configured, so nothing described here is reaching anyone today. This page describes what is built and how it behaves. On the web today, the same moments reach you as email, which is exactly what these notifications are built to ride alongside.
What gets sent
The list is short on purpose. A push is reserved for the moments where the server has to know something before there's anything to say: what's on your plan today, whether you logged it, where you are in your training block. Anything your phone can work out for itself stays a local reminder instead, so it works offline and costs no battery on a round trip.
| Notification | When | What it says |
|---|---|---|
| Today's run | 5 AM your local time | The day's workout with its distance and type, carrying the same heat-adjusted target the morning email uses. Sent alongside that email, so the heat adjustment is part of the workout rather than a separate alert. |
| Still time to log it | 7 PM your local time | A check-in when a run was scheduled today and nothing has been logged. The one notification with no email counterpart: an email about today, sent at 7 PM, would be read tomorrow. |
| Phase starts now | On crossing into a new phase | Build, Peak, or Taper beginning, with the week number, sent with the phase email. |
| Your week in review | Monday morning, your local time | Runs and distance from the week just finished, sent with the weekly summary email. Only when there was something to report. |
Never on a rest day
The evening check-in decides "was a run expected today" with the exact same code the morning email uses to pick its workout, and it reads your plan through the same overlays the app shows you. So a rest day, a vacation day, a cross-training day, and a session you already skipped are all silent, for the same reason they produce no morning email.
One set of preferences, two channels
Push doesn't add a second wall of category switches. Each notification is gated by the email preference for the matching kind: turn off phase emails and phase pushes stop too. Saying you don't want to hear about something, and then hearing about it on your lock screen instead, would be a dark pattern.
Channel-level consent is your OS notification permission plus the reminder switch in Settings. Turning reminders off unregisters the device, so the switch means what it says on both channels. Pheidi asks for the notification permission once, because both the local reminders and push run on the same OS grant.
Never the same notification twice
Every push claims a record before it is sent, keyed to you and to the exact occasion: the day for the daily ones, the ISO week for the weekly recap, the specific phase transition for a phase change. Two background passes racing each other resolve in the database, and the loser sends nothing.
The one exception is a delivery that reached nobody for a reason that might not last, a network failure, a shutdown mid-pass. That claim is handed back so the next pass can try again. A push that failed because your handles are dead keeps its claim, since retrying it forever wouldn't help.
Tapping one
Each notification opens the screen it is about: today's run and the evening check-in open the day view, a phase change opens the plan overview, the weekly recap opens the week view. The destination is chosen from a fixed list of Pheidi screens rather than taken from the message itself, so a malformed or mis-targeted payload can never point the app somewhere off-app wearing Pheidi's chrome. Anything unrecognised opens the home screen.
Devices and delivery
Delivery runs through Azure Notification Hubs, which fans out to Google's and Apple's push services. Your app registers its device handle when you sign in and refreshes it on resume, which is safe to repeat, and retires it when you sign out or switch reminders off. When a platform reports a handle as dead, that device is disabled rather than deleted, so reinstalling the app updates the record instead of creating a duplicate.
Push is additive throughout: every notification except the evening check-in rides on an email pass that already decided to send. If push is unconfigured or fails, the email still goes out unaffected.
The web app is live today, sign in to build a plan and set your email preferences.
See also
- How Phone Workout Reminders Work The offline, device-scheduled reminders that need no server at all.
- How Workout Reminder Emails Work The 5 AM morning email these notifications ride alongside.
- Mobile App Roadmap Where the native app is going, and how to install Pheidi as a web app today.