Privacy Policy
Last updated: October 2026
Our Commitment to Privacy
At pythoncompiler.io, we take your privacy seriously. This Privacy Policy explains how we handle your information when you use our Service. The short version: we don't collect, store, or have access to your code. Everything runs in your browser.
1. Information We Don't Collect
When you use the editor, tutorials and practice problems without signing in, pythoncompiler.io does NOT collect or store:
- Your Python code
- Your notebook content
- Your files or projects
- Personal information (no registration required)
- Email addresses or contact information
Your code runs entirely in your browser, on your device. It never leaves your device or gets transmitted to our servers.
There are two exceptions, both your choice. A feedback message you send can include an email address, a screenshot, or your code if you tick the box for it (section 11). And if you sign in, to keep your progress on every device or to join a class, a contest, a duel or your school's team, we keep what that needs (section 12).
2. Local Storage
When you use the auto-save feature, your code and settings are stored in your browser's local storage. This data:
- Stays on your device only
- Is never transmitted to our servers
- Can be cleared at any time through your browser settings
- Is isolated to pythoncompiler.io domain
3. Share URLs
When you use the "Share" feature:
- Your code is compressed and embedded directly in the URL
- The URL is generated entirely in your browser
- We do not store or log shared URLs
- Anyone with the URL can view and run the code
- Treat share URLs like you would treat the code itself (don't share sensitive information)
4. Analytics and Cookies
We may use basic analytics (such as Google Analytics) to understand how visitors use the Service. This may include:
- Page views and navigation patterns
- Browser type and version
- Operating system
- Referrer information (how you found us)
- Anonymous usage statistics
We do NOT track or log the content of your code through analytics. We only track general usage patterns to improve the Service.
Return visits. To learn whether people come back, your browser keeps a short list of the days it visited this site (in its own storage, only for the last four weeks). Once a day it tells our analytics whether this is a first or a return visit, roughly how long since the last one, and how many days you visited in the last four weeks. No cookie and no ID are involved, the dates themselves never leave your browser, and clearing this site's data removes the list.
Saving to GitHub. If you connect GitHub and save files, we record your GitHub username, the names of the files you save, and when you signed in, saved, or a save failed. All of this is already public in your public practice repository. We use it only to count how the feature is used and to fix problems. Saving talks to GitHub straight from your browser, and we never record the contents of your files. To have these records deleted, contact us through the feedback page.
5. Third-Party Services
The Service relies on:
- Python runtime: loads into your browser and runs entirely on your device
- CDN Services: To deliver static assets faster (CSS, JavaScript, fonts)
- Hosting Provider: To serve the web application
These services may collect technical information (IP address, browser type) as part of standard web hosting. However, they do not have access to your code or notebook content.
6. Security
We implement security best practices including:
- HTTPS encryption for all connections
- Content Security Policy headers
- Regular security updates
- No server-side code execution
Code you run never leaves your browser. When you are signed in, the code you write in exercises, challenges and quizzes is saved with your progress, and in a class, contest or duel the code of problems you solve goes to your teachers or your rival (section 12).
7. Chrome Extension
The Python Compiler Chrome extension follows the same principle as the website: your code runs on your device, and nothing about you or your code is collected. Specifically, the extension:
- Executes Python locally inside the extension. Code you run, its output, and its errors never leave your device.
- Reads code blocks only on sites where it is active, solely to show a Run button and execute the code you click. Page content is never transmitted, logged, or stored.
- Runs by default on a short list of sites (AI chat tools, Stack Overflow, GitHub, the Python docs). Any other site works only after you explicitly enable it, per site via right-click or globally via the extension's settings. Chrome asks for your permission before either takes effect.
- Stores only your preferences (which sites are enabled) in Chrome's extension storage, synced by your own Chrome profile. We have no access to it.
- Contains no tracking and no account system, and assigns you no identifier.
- Makes two kinds of network request. First, it downloads scientific packages (such as numpy or matplotlib) from a public package CDN the first time your code imports them; the request contains the package name only. Second, when it is installed or updated, it sends pythoncompiler.io one anonymous message containing only the extension's version number, so we can count installs. Neither request contains anything about you, your code, or the pages you visit. When you remove the extension, Chrome opens our feedback page, which counts the removal the same anonymous way.
Links from the extension to pythoncompiler.io open the website, where this policy's website sections apply.
8. Children's Privacy
The editor, tutorials and practice problems need no account and collect no personal information, so students of any age can use them. Signing in is for people aged 13 and over, or younger students whose school uses pythoncompiler.io for its classes and has agreed to it for them. If you believe a child under 13 has signed in without that, write to us at the address under Contact Us and we will delete the account.
9. Your Rights
You have complete control over your data:
- Your code is yours: the editor never sends it to us, and code saved with your progress (section 12) is shown only to you
- You can clear local storage anytime through your browser settings
- You can export your work as ZIP, PDF, or HTML files
- You can use the Service without creating an account
- If you sign in, you can see the ways you sign in and your school at /account/, delete your saved progress there, leave any class at any time, and ask us to delete your account and everything stored with it
10. Data Retention
If you don't sign in or send feedback, we hold nothing about you:
- Apart from feedback you send (section 11) and accounts (section 12), there is no data for us to retain or delete
- Your local storage data persists until you clear it
- Analytics data may be retained according to the analytics provider's policy
11. Feedback and Games You Send
When you send feedback (with the Feedback button, or the form at /feedback/), your message is stored with our hosting provider, Cloudflare, so we can read it and act on it. Nothing is sent until you press Send. Along with your words we keep:
- The category you picked, the page you sent it from, and details that help reproduce a problem: browser and operating system, window and screen size, time zone, language, and light or dark theme
- Your email address, only if you type one. It is used only to reply to you, never for a mailing list
- Your GitHub username, if you are signed in with GitHub on this site
- A screenshot, only if you attach one
- Your code and its last error, only if you tick "Attach my code" in the editor
To stop abuse we also keep a one-way hash of your IP address combined with the date. It only limits how many messages one connection can send in a day; it cannot be turned back into your IP address or linked across days. Feedback is never sold or shared. To have a message deleted, write to the address under Contact Us.
Games you send to the pygame gallery ("Send to gallery" in Pygame Online) are stored the same way: the title, the name you type, the description and controls if you add them, and the game's code. Nothing is sent until you press Send. We look at every game before it appears, and once approved its title, name, description and code are public at /pygame-online/gallery/. A first name or a nickname is best. The same one-way hash of your IP address and the date limits how many games one connection can send in a day. To have a game removed, use the Feedback button or write to the address under Contact Us.
Apps you send to the tkinter gallery ("Send to gallery" under the window) are kept the same way, with a picture of the app's window that your browser takes when you open the form. Once approved, the title, name, description, code and picture are public at /python-tkinter-online/gallery/. Share links and pictures you save are made in your browser and are not sent to us.
12. Accounts, Classes and the Python League
Signing in is optional. You need it only to keep your progress on every device, join or teach a class, enter a contest or a duel, take a mock interview, or count for your school, college or company in the Python League. You can sign in with an emailed code, Google or GitHub. When you do, we store, with our hosting provider Cloudflare:
- The email addresses you sign in with, and which way you signed in. From Google we also receive your name and profile picture. From GitHub, your username, name and profile picture
- A username we make up for you, and the name you choose to show
- Your progress, so it follows you to any device you sign in on: the lessons you finish, your exercise, challenge and quiz answers with the code you wrote, XP, badges, streaks, certificates, Daily Puzzle answers and the pages you saved. It is sent only while you are signed in, and it is not shown to anyone else. You can delete it at /account/, which also clears it from the other devices you are signed in on
- Certificates you claim: the name you print on each one, the quiz or exam, your score, the date, and what the quiz or exam recorded (how many answers passed, tries, hints and time). Anyone with a certificate's link sees its name, course, score and date, and a link to your profile if it is public; never your email. You can withdraw a certificate at /certificates/
- Certification exams you take: which questions you were given, the answers you chose, when you started and finished, your score and your score by topic. They decide your certificate and when you may take the exam again, and are not shown to anyone else
- The school, college or company your email address belongs to, worked out from the part after the @. Personal addresses such as Gmail or Outlook never count
- For classes, contests, duels and mock interviews: what you join, the problems you solve or try, how many tries and hints it took, whether you opened the model solution before solving, how long you spent, and the code of your solutions. While you are in a class, a record of how you write the code for an exercise or challenge (each edit with its time, pastes, runs, checks, hints, and when you leave the page) is sent with each Check so your teachers can replay it; the exercise tells you when this is on. Replays are kept for up to 400 days. Your teachers see this for their own classes. Classmates see your solutions only if the teacher allows it, and only after solving the same problem
- For the League: which problems you solve and when, never your code
- Learning platforms: if your school opens pythoncompiler.io from its learning platform (such as Moodle or Canvas), we receive the platform's id for you, your name, your role and the course name, and we send your score on those activities back to the platform's gradebook. We do not use an email address the platform sends
- Class lists: a teacher can add students by email address and name before they sign in. We keep that address and name so the student joins the class when they first sign in with it. Entries nobody claims are deleted after 180 days, or sooner when the teacher removes them or deletes the class
- A sign-in token for each browser you use. Your browser keeps the token; we keep only a one-way hash of it, for 90 days
- The days you used the site while signed in (the date only, nothing about what you did), so we can count how many people come back
- If you sign in with GitHub, your browser sends your GitHub token with each request. Our server passes it to GitHub only to confirm who you are, and keeps a one-way hash of it for an hour so it need not ask again. The token itself is never stored
Sign-in codes are sent by our email provider, ZeptoMail (Zoho), and expire after 10 minutes. To stop abuse we count requests per email address and per connection for an hour, stored only as one-way hashes. When a new account is made, the site's owner gets an email with its name, email address, way of signing in, school, rough location (city and country, from the connection) and the page where signing in started. The Python League shows totals for each institution, never your name. We never sell or share any of this, never send you marketing, and never use it for advertising.
Your profile at /profile/ is private. If you make it public, a page at pythoncompiler.io/u/ and the name you choose shows your account's name and picture, the headline, about text, location and links you add, and only the parts you tick: a verified school or company, your activity, topics, certificates, challenge records, your duel record (wins, losses and which challenges, never the other players) and badges. Its numbers are worked out in your browser from your progress and saved with the profile. Never your email. Make it private again, or remove it, from /profile/ at any time.
While your profile is public, and unless you untick "Leaderboards and fastest times", your name and picture also appear on the leaderboard at /leaderboard/ (your challenge points this week, this month and of all time) and, on each challenge's page and in the list of challenges, among its fastest solvers (the time and stars of your first solve). We keep those numbers, worked out from your profile, and delete them when the profile goes private, the box is unticked or the profile is removed.
In a duel on a challenge, the other player sees your name and picture and, while the duel runs, what you do: when you join, are ready, type, run your code, paste in a block of text (and how long it was), take a hint, submit (with how many tests pass), solve it, give up or leave the page. Your code is shown to them only after the duel ends. We keep the duel with your times, hints, the code you finished with and the result, so you can both look back at it. Preset messages are the only messages players can send each other.
We keep your account while you use it. To have it deleted, with everything stored with it, write to the address under Contact Us from one of the email addresses you sign in with.
13. International Users
pythoncompiler.io can be accessed from anywhere in the world. All code execution happens in your browser. Feedback and account data (sections 11 and 12) are stored by Cloudflare, which may process them in data centres outside your country.
14. Changes to This Policy
We may update this Privacy Policy from time to time. We will notify you of any changes by updating the "Last updated" date. Continued use of the Service after changes constitutes acceptance of the updated policy.
15. Contact Us
If you have any questions about this Privacy Policy or our practices, please contact us at pythoncompileronline@gmail.com.
Summary
TL;DR: Your code runs in your browser, and the editor never sends it to our servers. Auto-save uses local storage on your device. Share URLs contain your code directly in the URL. The Chrome extension follows the same rule: local execution, no tracking, no data about you. On the website we may use analytics to improve the Service, but we never track your code content. Feedback reaches us only when you press Send, and includes your code only if you tick the box. Signing in is optional; if you do, we keep your email, your school, your progress (with the code of your exercises) and, for classes you join, your solutions for your teachers.