Privacy Policy

Effective date: May 2026 · Last updated: May 2026

1. Who we are (Data Controller)

myqubit.dev ("we", "our", "us") is an interactive quantum computing education platform and the data controller for personal data collected through this service. For privacy inquiries, contact us at privacy@myqubit.dev.

2. Data we collect

Account data

When you register: your name, email address, and a bcrypt-hashed password. We never store your password in plain text. Your account also stores: subscription tier, XP, level, streak count, and onboarding status.

Usage and progress data

Lesson completions, code submissions, XP earned, streak count, achievements unlocked, daily challenge attempts, and hint usage count. This data powers your learning progress and leaderboard ranking.

Payment data

We use Stripe for payment processing. We never store your card number or CVV. We store a Stripe customer ID and subscription status to manage your Pro access. Stripe's privacy policy governs payment data: stripe.com/privacy.

Analytics data

With your consent, we use PostHog to track pseudonymous usage events (e.g., playground opened, lesson started) to improve the platform. If you have enabled "Do Not Track" or declined analytics via our cookie banner, PostHog is not initialized. We may also use Google Analytics (Google Tag Manager) to measure traffic. This is also subject to your consent choice.

IP address

We collect your IP address for rate limiting and fraud/abuse prevention on sensitive endpoints (login, registration, checkout, AI hints). IP addresses used for rate limiting are stored temporarily in our Redis cache and are not retained long-term or linked to your account profile.

Session data (JWT)

When you log in, a signed JWT session token is stored in a secure cookie. It contains: your user ID, email, display name, avatar URL, and onboarding completion status. This data is used solely to authenticate your requests.

Playground circuits

Circuits saved in the Quantum Playground may be set to public (visible to all users) or private. Public circuits are searchable and display a view count. We store the circuit name, gate sequence, and your user ID with each saved circuit. Mark circuits as private if you do not want them publicly visible.

Email communications

We send transactional emails (email verification, password reset) via Resend. We do not send marketing email without your explicit consent.

3. Lawful basis for processing (EU/EEA users)

For users in the European Union or European Economic Area, we process your personal data under the following lawful bases as defined in GDPR Article 6:

  • Contract performance: account management, subscription billing, lesson progress, certificate issuance
  • Legitimate interest: platform security, fraud prevention, rate limiting, IP-based abuse prevention
  • Consent: analytics (PostHog, Google Analytics), non-essential cookies. You may withdraw consent at any time via the cookie banner or by contacting us.
  • Legal obligation: retaining transaction records as required by applicable tax and accounting laws

4. How we use your data

  • To provide and maintain your account and learning progress
  • To authenticate you securely via JWT sessions
  • To process payments and manage your subscription tier
  • To generate completion certificates linked to your profile
  • To display leaderboard rankings and public profile pages (if you set a username)
  • To improve the platform through aggregated, anonymized analytics (with consent)
  • To send transactional emails you explicitly request (verification, password reset)
  • To prevent fraud, abuse, and enforce rate limits on our APIs

5. Data sharing and sub-processors

We do not sell your personal data. We share data only with the following processors, each bound by data processing agreements or standard contractual clauses where required by GDPR:

  • Vercel: infrastructure hosting and CDN; all requests transit through Vercel's network (Vercel Privacy Policy)
  • Neon / PostgreSQL: database hosting for your account and progress data (Neon Privacy Policy)
  • Stripe: payment processing (Stripe Privacy Policy, DPA)
  • Upstash Redis: rate limiting cache; stores temporary IP-based counters, no personal profile data retained long-term (Upstash Privacy Policy)
  • PostHog: pseudonymized analytics (only with consent) (PostHog Privacy Policy)
  • Google (Tag Manager / Analytics): site traffic analytics (only with consent) (Google Privacy Policy)
  • Resend: transactional email delivery (Resend Privacy Policy)
  • Anthropic: AI hint generation. Code you submit to the Qubitus AI tutor is sent to the Anthropic API and is subject to Anthropic's privacy policy. Do not submit sensitive or personal data in code hints. Anthropic does not use API inputs to train its models by default.

6. Data retention

  • Account and progress data is retained for as long as your account is active.
  • If you delete your account, personal data is permanently erased within 30 days. You will receive a confirmation email when deletion is complete.
  • Payment transaction records are retained for 7 years as required by tax law.
  • IP addresses used for rate limiting are retained in Redis cache for up to 24 hours, then automatically expire.
  • Fraud prevention logs may be retained for up to 1 year from the relevant event.

7. Your rights

You have the following rights regarding your personal data. EU/EEA users have these rights under GDPR. To exercise any right, email privacy@myqubit.dev and we will respond within 30 days.

  • Access: request a copy of the personal data we hold about you
  • Rectification: correct inaccurate data via account Settings or by contacting us
  • Erasure: delete your account and all associated data (Settings → Delete Account, or email us)
  • Data portability: export your progress data in JSON format by contacting us
  • Restriction: request that we limit processing of your data while a dispute is resolved
  • Object: object to processing based on legitimate interest (e.g., analytics); we will cease unless we demonstrate compelling grounds
  • Withdraw consent: withdraw analytics consent at any time via the cookie banner at the bottom of any page
  • Supervisory authority: if you are in the EU/EEA, you have the right to lodge a complaint with your local data protection authority (e.g., ICO in the UK, CNIL in France)

8. Cookies and local storage

We use the following cookies and local storage:

  • Essential (next-auth.session-token): Secure, httpOnly session cookie set by NextAuth.js to keep you logged in. Required for the service to function; cannot be declined.
  • Analytics, consent required (PostHog, Google Analytics): Pseudonymous usage tracking cookies. Only set if you accept analytics via our cookie consent banner.
  • Preferences (cookie_consent): Stores your cookie consent choice in localStorage. Not transmitted to our servers.

Pyodide (the quantum runtime) runs entirely client-side via WebAssembly and does not send your code to our servers except when you explicitly submit a lesson for grading or request an AI hint.

9. Security

Passwords are hashed with bcrypt (cost factor 12). All connections use HTTPS/TLS. We enforce HTTP Strict Transport Security, Content Security Policy, and rate limiting on all sensitive endpoints. Stripe webhook signatures are verified on every webhook event. JWT tokens are signed with a secure secret and expire after the session window.

10. Children

myqubit.dev is not directed at children under 13. We do not knowingly collect personal data from children under 13. If you believe a child has provided us data, contact us at privacy@myqubit.dev and we will delete it promptly.

11. International transfers

Our infrastructure is hosted in the United States (Vercel, Neon). If you are in the EU/EEA, your data is transferred to the US under Standard Contractual Clauses or equivalent transfer mechanisms where applicable. Stripe is certified under the EU-US Data Privacy Framework.

12. Changes to this policy

We may update this policy. If we make material changes, we will notify you via email or a notice on the platform at least 14 days before the changes take effect. The effective date at the top of this page will always reflect the most recent version.

13. Contact

Questions about this policy or requests to exercise your rights? Email privacy@myqubit.dev. We aim to respond within 5 business days and resolve all requests within 30 days.