Privacy
Privacy policy
1. What this app is
Feral Athlete League (FAL) is a private two-person athlete-behaviour league. It is not a weight-loss contest. The app tracks behaviours: daily check-ins, weekly reviews, Crew Support requests, photo notes, weekly result summaries, badges, and reward credits.
Private Production v1 is closed by invitation only and operated for the two crew members participating in the season.
2. Data we collect today
- Account / authentication data via Supabase Auth (email, ID).
- Profile display name and timezone.
- League membership (which league you joined, your role).
- Daily check-ins (food / recovery / mind / connection booleans, optional notes).
- Weekly reviews (per-pillar booleans, optional reflection notes, integrity flags).
- Crew Support requests (request type, request text, supporter notes, confirmation notes).
- Weekly result summaries (the safe shared scoreboard for the league).
- Reward credits and earned badges (computed, not stored as separate rows).
- Optional photo uploads with category, optional title, optional notes.
3. Photo uploads
- Photos are private by default.
- You may toggle Share with crew on any individual photo.
- Photos are stored in a private Supabase Storage bucket. There is no public bucket and no public URL.
- Photos auto-delete after about 48 hours via a scheduled cleanup job. Cleanup typically runs daily, so a photo may live up to ~72 hours in the worst case.
- Metadata for an upload may persist briefly after the bytes are removed if a cleanup retry is needed.
4. WHOOP data (planned)
Connecting your WHOOP account is optional. If you choose to connect it, the app may request the following WHOOP scopes:
- profile
- sleep
- recovery
- workout
- cycles
The app will not request the body-measurement scope.
WHOOP data is used to suggest or pre-fill sleep, recovery, and workout context inside your daily check-in. WHOOP data does not automatically decide your scores; you can override every suggestion. Raw WHOOP metrics are private by default. The shared dashboard never exposes raw HRV, recovery, sleep stages, or any other raw health signal — only the consented behaviour summaries that already power weekly results.
WHOOP connect / disconnect, manual sync, and private suggestions on your own check-in are implemented (see /integrations). Suggestions are advisory — manual check-ins remain the source of truth and you choose whether to apply them. Scheduled background sync lands in a later release. Connecting is always optional, and you can disconnect at any time — disconnecting removes the stored tokens from FAL and best-effort revokes them at WHOOP.
5. What is shared with your crew member
Shared with the other active crew member:
- Safe weekly result summaries (pillar totals, daily totals).
- Score titles (Beast Week, Command Week, etc.).
- League points and Best 6 of 8 standings.
- Reward credit counts.
- Shared-safe badges.
- Crew roster (display name, role, join date).
- Photos that you explicitly marked share_with_crew.
Never shared with your crew member:
- Private daily check-in notes.
- Private weekly reflection text.
- Raw WHOOP metrics or other raw health data.
- Photos that you did not mark for sharing.
- Authentication tokens, cookies, or any other secrets.
6. Where data is stored / processors
- App hosted on Vercel.
- Authentication, database, and storage by Supabase.
- WHOOP data is fetched directly from WHOOP, only after you connect your account, and only for the scopes listed above.
We do not use any other third-party processor today. We do not sell your data. We do not run advertising. There is no analytics or tracking SDK in the app bundle.
7. Tokens and secrets
- WHOOP access and refresh tokens (once implemented) will be stored server-side only.
- Tokens are never rendered in the browser UI.
- Tokens are not shared with your crew member.
- The Supabase service-role key is server-only and is used solely by the scheduled photo-cleanup job. It is never bundled into the browser.
8. Your choices
- You can choose not to connect WHOOP. The behaviour game still works without it.
- You can disconnect WHOOP at any time once integration ships.
- You can choose whether to share each individual photo with your crew member.
- You can request deletion of your account and league data (see Section 12).
9. Security
- Row-level security is enforced on every database table.
- The photo storage bucket is private. There is no public bucket.
- The Supabase service role is used only inside the server-side cleanup job and is never available to the browser.
- Auth sessions are managed by Supabase Auth.
We do not claim HIPAA, GDPR, or CCPA compliance. We aim for sane, private-by-default defaults appropriate for a closed two-person private production app.
10. Data deletion
- Photos auto-prune after about 48 hours.
- You can manually delete an upload from the Photos page at any time.
- You can request deletion of your account or league data by contacting the address below.
- WHOOP disconnect / delete behaviour will be implemented when WHOOP integration ships, including revocation of stored WHOOP tokens.
11. Minors
Feral Athlete League Private Production v1 is intended for adults who have been personally invited. The app is not designed or marketed for children, and we don't knowingly collect data from anyone who isn't a participating crew member.
12. Contact
Questions, deletion requests, or concerns about this policy:
Contact: madley@shaw.ca
Back to the public landing.