Privacy Policy
Version 1.4 · Effective 2026-08-11
Short version: optional email/PIN for your progress, analytics only if you accept, rights requests to info@cyberskill.world.
Data we collect
| Category | Purpose | Storage |
|---|---|---|
| Email (optional) | Save and retrieve progress; newsletter if opted in | Supabase |
| PIN hash (optional) | Authenticate progress retrieval — stored securely as a hash (never plain text) so your history survives this device | Supabase |
| Nickname (optional) | Leaderboard display; saved with your progress identity | Supabase |
| Exam sittings and scores | Grade practice, show history | Supabase / local device |
| Brain sessions and clears | Verify Brain play for Book and Crane awards; store session proof | Supabase |
| Books and Crane events | Timed-mock economy and public leaderboard rank | Supabase |
| Leaderboard entries | Public rankings of timed mocks and Brain activity | Supabase |
| Roadmap board posts and comments | Public title, body, nickname, and route; optional email for follow-up is stored but not shown publicly | Supabase |
| Newsletter opt-in | Product updates you requested | Supabase / email provider |
| Operational telemetry | Reliability and abuse prevention | Hosting / logs |
| Analytics (optional) | Aggregate product usage — only if you accept | Analytics provider |
Sub-processors
Two of these receive data on every visit: the database and the host. The rest only receive anything when the named condition holds. Where a row says a service is not currently in use, no request reaches it at all, because the code that would call it does not run without configuration.
| Processor | Role | Region notes |
|---|---|---|
| Supabase | Database and auth storage | US/EU (project config) |
| Vercel | Hosting and edge network. Vercel Speed Insights is a separate page-performance beacon and loads only if you accept analytics. | US / global edge |
| Analytics providers | Aggregate product and traffic analytics. A provider script loads only when you accept analytics and that provider is configured for this deployment. The providers the site can load are PostHog, GA4 (gtag.js), Plausible, and Umami; an unconfigured provider is never contacted. | Per provider (US / EU cloud) |
| Transactional email provider (Resend) | Holds your address as a contact in our broadcast audience when you opt in to the newsletter, and delivers lifecycle messages. Address and template metadata only; no open or click tracking pixels. The adapter also supports Postmark; only the provider named in the deployment configuration receives anything. | US / EU (provider region) |
| Cloudflare Turnstile | Anti-spam check on the newsletter form. When you submit an email address, the challenge token and your IP address are sent to Cloudflare for verification. In use since 2026-08-07. | Global edge |
| AI tutor provider | Would process optional tutor follow-up question text, with item stems and pre-generated explanations in the model context and no email or account identifier attached. Not currently in use - the tutor is switched off and no provider endpoint is configured. | Configured per deployment |
| Telemetry collector | Would receive traces, metrics, and log records for reliability work. Not currently in use - no collector endpoint is configured, so telemetry stays inside the deployment. | Configured per deployment |
| Buy Me a Coffee | Optional support (bananas and memberships). Receives the payment details you provide on their platform; CyberSkill never stores card numbers. Webhooks may include supporter email so we can grant Supporter on matching Practice accounts. | Global (Buy Me a Coffee) |
Team seats and visibility
When an organization buys Practice seats (sales-led; not self-serve checkout), a team admin can invite members by email. Accepting an invite joins you to that team for the contract term and grants premium practice access through the same access path as individual Supporters.
- What admins see by default: seat occupancy, pending invites, member emails for active seats, and aggregate team progress only (how many members have practiced, how many timed mocks were completed, readiness band distribution when available). Admins do not see per-member item-level answers or individual scores unless you opt in.
- Member opt-in (default off): on the Team page you can allow your admin to see your own completed mock count, best score and last practice date alongside your seat on the member list. That is the whole of it: no per-question answers, no review history, nothing finer. You can turn it off at any time; the default is off.
- Invited emails: invite records store the invited address and a hashed token until the invite is accepted or expires (typically 14 days). Expired, unaccepted invites are purged and are not kept for marketing.
- What does not change: team membership does not add employer branding to your practice UI, and admins cannot force study plans. The purchase is access, not control of how you study.
Team admins and members manage seats at /team. Questions about a workplace seat: contact your team admin, or info@cyberskill.world.
Retention
Progress and leaderboard data are retained while your account remains active or until you request deletion. Logs are retained for operational periods then deleted or aggregated. Consent choices persist for up to 12 months.
Legal frameworks
Depending on where you are, the following may apply: Vietnam Personal Data Protection Law and Decree 356/2025; GDPR for EU visitors; CCPA/CPRA for California visitors. Listing these frameworks does not imply that every corporate filing (for example cross-border transfer assessments) is complete — some legal assessments are handled at the company level.
Your rights
To access, correct, or delete personal data we hold about you, contact info@cyberskill.world from the address the data is filed under. Because an email address is the only identifier most accounts have, we will ask you to confirm control of that address before we export or erase anything. We aim to answer within 30 days.
Erasure removes your identity row, sittings and answers, entitlements and their history, review and study-plan state, gamification records, Brain sessions, Roadmap board posts filed under your address, and newsletter records. Two things survive on purpose: an audit note that a request was serviced, which records a one-way hash of the address rather than the address itself, and any team whose administrator you were, so the other members do not lose their seats. Copies held by the payment platform are governed by that platform.
You can reject analytics via the cookie banner or by enabling Global Privacy Control in your browser.