MySportsApp
How we handle your members’ information
Written for organizers deciding whether to run a season here: what we store, who can see it, how it’s protected, how waivers work, and the one limit we’d rather you heard from us than discovered.
What we collect
Only what running a league requires. There is no tracking, no advertising, and nothing is sold or shared with third parties.
| Data | Why we hold it |
|---|---|
| Name and email | To create an account, send team invitations, and confirm results. |
| Phone (optional) | Only if a player supplies one when registering as an individual. Never required. |
| Team and roster | To build schedules, standings and player statistics. |
| Scores and results | The competition record itself. |
| Payment records | What was paid, by whom, and when — never the card itself. |
| Answers your organization asks for | Only what you choose to ask at registration. Some organizations ask for an address or an emergency contact; nothing here is collected unless you add the question. |
Who can see it
Access is enforced by the database, not by the application. Every one of our 48 data tables has row-level security switched on, which means a request that isn’t entitled to a row does not receive it — even if a bug in the website were to ask for it.
A player’s contact details are visible to:
- The player themselves
- Their own teammates
- The organizer running the competition their team is in
- Other administrators of that organization
That is the complete list. Players in other teams cannot see them, players in other leagues cannot see them, and the public pages never contain them.
Individual sign-ups — where someone registers alone rather than with a team, and supplies an email and phone number — are tighter still: readable only by that person and by the organizers. Not by teammates, because at that point they don’t have any.
Answers to your own registration questions are tighter again
If your organization asks players for details beyond a name and email — an address, a phone number, a playing history — those answers are readable by the player who gave them and by your organizers only. Not by their captain, not by their teammates, and never on a public page. A roster shares a name and an email with a team; a home address is a different thing, and it is not treated the same way.
Nobody can answer on anyone else’s behalf, and deleting a question deletes every answer to it.
How it's protected
- In transit. Every connection to the site and the database is encrypted with TLS. The site is HTTPS-only.
- At rest. The database is encrypted on disk (AES-256) by our hosting provider, Supabase, running on Amazon Web Services.
- Passwords. We never see or store them. Authentication is handled by Supabase Auth, which stores only a salted hash.
- Separation of keys. The key the browser uses is low-privilege and bound by the rules above. The privileged key exists only on the server and is never sent to a browser.
Payments
No card details ever reach us
Card entry happens on Stripe’s own hosted checkout. Card numbers, expiry dates and security codes never touch our servers or our database — there is no column anywhere in our system capable of holding one. We keep only Stripe’s reference for the payment, the amount, and who it was for.
Stripe is a PCI Service Provider Level 1 — the highest certification in the card industry. Payouts go directly to your own connected Stripe account; the money does not sit with us.
Waivers
Your organization writes its own waiver text and approves it. Once approved, the wording is locked — the database itself refuses an edit. Changing it later creates a new version, and every signature already given stays attached to the version it was given for. You can never end up having quietly amended something a member already agreed to.
How a member signs
- The agree button stays disabled until they have scrolled to the end of the text. “I have read and agree” under a box nobody opened is the part that falls over in the one conversation where it matters.
- Agreeing means typing their name, not ticking a box. That typed name is what we store.
- We record the name, the exact date and time, and a fingerprint of the precise wording they were shown — so the record proves what they agreed to, not merely that they agreed.
How they’re stored
- Append-only. A signature record cannot be edited or deleted by anyone, including us through the application. Evidence that can be altered afterwards is not evidence.
- Nobody can sign for anybody else. Enforced by the database, not by the screen.
- Visible to the member and to your organizers. Not to their teammates — whether somebody has signed a liability waiver is between them and you.
What it gates
A registered team stays pending until it has the number of players you require and every one of them has signed. A pending team is not scheduled and does not appear in standings. Add a player later and the team goes back to pending until that person signs too.
Where the data lives, and backups
Our database is hosted by Supabase on Amazon Web Services in the US East region (Northern Virginia). Your members’ data is therefore stored in the United States. This is lawful under Canadian privacy law (PIPEDA) provided members are informed, which is why we say it here rather than leaving it in a footnote.
Daily backups, not point-in-time
The database is backed up once a day. We do not currently run point-in-time recovery, so in the worst case a restore could lose up to a day of changes — scores entered that evening, for instance. We would rather you knew the shape of that than assumed it is continuous.
Your data stays yours
- You own it. Your rosters, schedules and results belong to your organization. We make no claim to them and do not use them for anything beyond running your competitions.
- Export. Ask and we will provide a full export of your league’s data in a standard format.
- Deletion. A member can ask for their account to be deleted, and you can ask us to remove your organization’s data entirely. Competition records that other people also appear in are handled case by case so we don’t erase somebody else’s season.
- No selling, ever. We do not sell personal data and we do not share it with advertisers.
If something goes wrong
If we became aware of a breach affecting your members, we would tell you directly and promptly with what we know, what was affected, and what we are doing — not wait for you to notice. We would support you in meeting any reporting obligations of your own.
Questions, or anything here you need in more detail — including a review by your own advisors — write to privacy@mysportsapp.ca. See also our privacy policy and terms.