Privacy Policy

Last updated: 2026-05-07

We try to collect as little as possible. Here's exactly what we store, why, and how to remove it.

1. What we collect

DataWhyWhere it lives
Email, first name, last nameAccount identity, sending password reset emails, personalizing certificatesCloudflare D1 database
Password (hashed)Authentication. Stored as PBKDF2-SHA256 with a per-user random salt โ€” we never store or see your plaintext passwordCloudflare D1
Lesson progress, attempts, best code submittedShowing your progress, resuming where you left off, awarding badges/certificatesCloudflare D1
Streak / activity datesThe ๐Ÿ”ฅ counter on your dashboardCloudflare D1
Stripe customer ID and subscription IDLinking your account to your Pro subscriptionCloudflare D1; Stripe holds the actual payment data
Stripe processes your card detailsPayment processingStripe โ€” Pythonator never sees your card number
Server logs (request URLs, timing, IP for tens of seconds)Debugging and abuse detectionCloudflare; rotated within 24 hours

2. What we do NOT collect

3. Cookies and local storage

We use localStorage on your device to keep your session token (a JWT) so you stay logged in between visits. We don't set tracking cookies. You can clear localStorage at any time via your browser's developer tools.

4. Third parties we use

5. Email

We email you only for transactional reasons (password resets, billing receipts, important account notices). We don't send marketing email. If we ever start, it'll be opt-in.

6. Children

The Kids track is designed for ages 7+. If you are under 13, please use the service with a parent or guardian's involvement, and have them create the account on your behalf. We do not knowingly collect data from children under 13.

7. Your rights

8. Security

Passwords are hashed with PBKDF2-SHA256. Data in transit is encrypted (TLS). Database access is locked down to the Worker. We do our best, but no system is perfectly secure โ€” please use a unique password.

9. Changes

If we change this policy materially, we'll let you know by email or in-app notice before the change takes effect.

10. Contact

Privacy questions: contact us at the email associated with your account or through the support channel published on the site.

Pythonator ยท 2026