PyLearn
Terms of Use Privacy Policy Licenses

Privacy Policy

Effective: March 2026

1. What We Collect

When you create an account, we collect the following information:

  • Username (3-20 characters, chosen by you)
  • Email address (required for registration)
  • Password (never stored in plaintext — hashed with PBKDF2 using a random salt)
  • Exercise progress (which exercises you have completed and when)
  • Submitted code (the Python code you write for exercises)

2. How We Store Your Data

All data is stored in Cloudflare D1, a SQLite database hosted on Cloudflare's edge network. Passwords are hashed with PBKDF2 (100,000 iterations, SHA-256) — plaintext passwords are never stored or transmitted after hashing.

Authentication uses JWT tokens stored in your browser's localStorage with a 30-day expiry. Guest users have their progress stored only in browser localStorage — nothing is sent to our servers.

3. How We Use Your Data

Your data is used for the following purposes:

  • Account authentication — logging in and verifying your identity
  • Progress tracking — saving and restoring your learning progress across sessions
  • Email — account recovery via password reset, delivered through the Resend email service (planned feature)

4. Third-Party Services

PyLearn uses the following third-party services:

  • Cloudflare — Pages (hosting), Workers (API), D1 (database). Cloudflare Privacy Policy
  • Resend — Transactional email delivery for password reset (planned). Resend Privacy Policy
  • jsDelivr CDN — Delivers open-source libraries (Monaco Editor, Pyodide, marked.js, Prism.js) to your browser. No user data is sent to jsDelivr.

5. What We Do NOT Collect

We want to be clear about what we do not do:

  • No cookies — authentication tokens are stored in localStorage, not cookies
  • No analytics or tracking scripts
  • No advertising or ad networks
  • No IP address logging beyond standard Cloudflare edge processing

6. Data Retention

Account data is retained while your account is active. Guest progress is retained in browser localStorage until you clear it. You may request account deletion by contacting us.

7. Your Rights

You have the right to:

  • Request a copy of your data
  • Request account and data deletion
  • Guest users can clear localStorage at any time to remove all local data

8. Children's Privacy

PyLearn is not specifically directed at children under 13. We do not knowingly collect data from children under 13. The platform contains no age-restricted content.

9. Changes to This Policy

This policy may be updated, with the effective date noted at the top of this page. Continued use of PyLearn after changes constitutes acceptance of the revised policy.

10. Contact

Questions about this privacy policy? Contact us at contact@pylearn.dev.

Back to PyLearn