Local first, in plain language
Your training.
Your device.
No account to create. No training-data server. Here is what stays local, and what happens if you choose to connect AI.
Your training records stay in this browser.
The planner stores setup, plans, and logs in IndexedDB on your device. Moving between this website and /app/ on the same HTTPS domain does not create a new storage origin or upload your data.
There is no account, application backend, automatic cloud backup, advertising profile, or training-data sync. Someone with access to your browser profile may be able to access its records. Browser storage is not a promise of encryption or permanent retention.
Backups are your choice, and your responsibility.
Export a JSON backup from Data & settings in the planner. Import it in another browser or device to transfer a campaign. Keep backup files somewhere you trust; they can include personal training information.
Clearing site data, using temporary/private browsing, or browser storage eviction can remove local records. A localhost preview, a pages.dev preview, and this domain have separate storage. They do not exchange data automatically.
No analytics or error-reporting scripts.
This production site does not use analytics beacons, advertising trackers, session recording, or browser error reporting. It uses no tracking cookies. Fonts, graphics, and application assets are served with the site rather than loaded from third-party font or image services.
Cloudflare hosts the static files. Like any web host, it necessarily handles network requests, including IP addresses and normal request metadata, to deliver and protect the site. Local-first does not mean that loading a website makes no network request. See Cloudflare’s privacy policy for its handling of that traffic.
AI is a separate, explicit connection.
Nothing is sent to a model simply by visiting the site or opening its settings. If you choose a compatible endpoint, you review the payload before sending. The browser connects directly to that endpoint, without a Hybrid Coach proxy.
Setup sends the goal brief, exercise request, equipment, selected exercise IDs, and allowed catalog, not your activity files or training logs. The provider you choose receives those requests and is governed by its own terms and privacy policy. A local endpoint must support browser connections too.
Connection details and API keys live only in the open tab’s memory and are excluded from saved training data and backups. Reloading or disconnecting clears them. Optional API use may cost money; planning without AI does not.
Offline, after the first visit.
A service worker saves this site’s static files after you open the planner and installation succeeds. This lets you reopen the planner and use local records offline in the same browser. It does not cache external AI requests. The app shows whether its offline copy is ready.
Questions or corrections.
The source and public issue tracker are on GitHub. Do not post private records or API keys in a public issue. This site has no contact form, mailing-list signup, or data-collection endpoint.