Effective date: 11 October 2026 · Last updated: 11 October 2026
This Privacy Policy explains how turtleSpaces collects and uses personal data when you use the turtleSpaces website, the turtleSpaces web IDE, the desktop apps, and related services (together, “turtleSpaces”, “we”, “us”). We are based in British Columbia, Canada, and this policy is written to meet Canadian privacy law (PIPEDA and British Columbia’s Personal Information Protection Act), the EU and UK General Data Protection Regulation (GDPR) and, for users in the United States, the Children’s Online Privacy Protection Act (COPPA).
turtleSpaces is used by children. We have tried to write this policy so that a parent, a teacher, or an older student can read it. Where something is technical, we explain what it means.
The data controller responsible for your personal data is:
The table below lists each kind of personal data, why we use it, and the legal basis under Article 6 GDPR.
| Data | What it includes | Why we use it | Legal basis |
|---|---|---|---|
| Account | Username, email address, country, password (stored as a hash), sign-up date | To create and run your account, let you log in, save and publish projects | Contract (Art. 6(1)(b)) |
| Sign in with Google (optional) | Name, email address, profile picture link, Google account ID, locale | To let you log in with your Google account instead of a password | Contract (Art. 6(1)(b)) |
| Profile (optional) | Catchphrase, avatar image, badges you have earned | To show your public profile page | Contract (Art. 6(1)(b)); for children, see Children |
| Sign-in records | IP address, browser user-agent, country, sign-in method, class group, time | To keep accounts secure and investigate abuse | Legitimate interests (Art. 6(1)(f)): security and fraud prevention |
| Projects | Programs, procedures, turtle names, workspace names, and edit history (which usernames changed a project) | To save your work and, if you publish, to show it | Contract (Art. 6(1)(b)) |
| Published projects | The project, your username, the original author’s username | To display projects in the public gallery and allow remixing | Contract (Art. 6(1)(b)); you choose to publish |
| Class groups | Group name, owner email, the members of the group, classroom settings | To let a teacher or group owner run a class | Contract (Art. 6(1)(b)) with the group owner; see Schools and teachers |
| Learning progress | Which commands and features were used, errors met, time and session, skill scores and badges (no program source code) | To show a learner’s progress and suggest next steps; to give teachers class summaries | Contract (Art. 6(1)(b)); legitimate interests (Art. 6(1)(f)) in improving learning |
| AI requests | Your message, the program you are working on (procedure names, code, turtle names), the interface language, a session ID | To answer your question or perform the AI task you asked for | Contract (Art. 6(1)(b)); you choose to use the feature |
| Email verification | Email address, a one-time code (stored hashed) | To confirm the owner of a class group controls the email address | Contract (Art. 6(1)(b)) |
| Feedback (optional) | Your message, an optional contact email, optionally device details (browser, workspace name) if you tick the box, a one-way hash of your IP address | To read and respond to your feedback and fix problems | Consent (Art. 6(1)(a)) for the optional parts; legitimate interests (Art. 6(1)(f)) otherwise |
| Crash reports | The page address, browser user-agent, the error message and stack trace, and your username if logged in | To find and fix bugs | Legitimate interests (Art. 6(1)(f)) in keeping the service working |
| Analytics | A random ID, a session ID, pages viewed, referrer (without query strings), campaign tags, app events (for example “program run”, “project saved”), app version, and a country derived from your IP address (the IP address itself is not stored) | To understand how turtleSpaces is used and improve it | Legitimate interests (Art. 6(1)(f)) in a minimal, first-party measure of how turtleSpaces is used, with an opt-out — see Analytics |
| Server logs | Technical request data such as IP address, time and requested page, kept by our web servers | To run, secure and troubleshoot the service | Legitimate interests (Art. 6(1)(f)) |
We do not ask for your real name, date of birth, home address or phone number. Please do not put personal information such as your real name, school, or address into project names, program text, your catchphrase or published projects.
We do not use personal data for automated decisions that have legal or similarly significant effects on you (Art. 22 GDPR). Skill scores and badges are learning aids, not assessments.
turtleSpaces is made for learners of all ages, including children.
If you believe a child has given us personal data without the consent that the law requires, please contact us and we will delete it.
How consent works at sign-up. Children under 13 (or under the age of digital consent in their country, in the EU and UK) need a parent or guardian to create or approve their account, or must join through a class group set up by their school or teacher (see Schools and teachers). We do not knowingly keep accounts made by children without that permission: if we learn that one exists, we will delete it.
When a school or teacher sets up a class group and has students use turtleSpaces for school work, the school usually decides why and how its students’ data is used. In that case:
Schools that need a data processing agreement (DPA) can request one by emailing help@turtlespaces.org, and we will provide it.
A group owner can see the usernames and email addresses of the members of their group, see their progress, and reset their passwords. Class progress summaries produced by AI are made from scores only: before sending them to the AI provider we replace each student’s name with a label such as “member 1”.
Students and parents with questions about a school’s use of turtleSpaces should ask the school first. We will help the school answer.
Some features use a large language model to help you:
AI features need you to be logged in. When you use one, we send the following to our AI service:
We do not add your username or email address to the request. But anything you type is sent, so do not put personal information in your messages or code.
Our AI service passes the request to Anthropic (the Claude models) to write the answer. To find relevant help pages, your message is also sent to Voyage AI to make a search query. Conversations are held in memory by our AI service for about 30 minutes and then discarded. Under the commercial terms we use, neither Anthropic nor Voyage AI uses the data we send to train their models. Anthropic keeps API requests for a limited time (up to 30 days under its standard terms) to operate its service and detect misuse, and then deletes them; Voyage AI does not keep the text we send after answering.
AI answers can be wrong. Please check them, and see our Terms of Service.
The turtleSpaces IDE does not set cookies. It uses your browser’s local storage instead, which is a similar technology. Under EU ePrivacy rules, storing or reading information on your device needs your consent unless it is strictly necessary for a service you asked for.
| Name | Purpose | Type |
|---|---|---|
loginuser, logintoken, logingroup |
Keep you logged in, remember your class group | Strictly necessary (only if you log in) |
persistedContainers…, commandHistory… |
Keep your unsaved workspace and command history on your device | Strictly necessary |
ts_classroom_config |
Classroom settings chosen by your teacher | Strictly necessary |
theme, locale, fontSize, blocksZoom, consoleFontStyle, printerEnabled, liveCoding |
Remember your settings | Preferences |
shellytour, shellytts, shellyturtorial, loginwelcome |
Remember whether you have seen the tour and welcome messages, and cache tutorials | Preferences |
__electron_ide_profile__ |
Desktop app profile | Preferences (desktop app only) |
ts-wasm-preload, ts-warm-at (session storage), cache storage |
Load the IDE faster | Strictly necessary |
ts_anon, ts_session |
A random analytics ID and a session ID | Analytics |
We run our own analytics service. It is not a third-party advertising or tracking service. It records the events listed in What we collect and why against a random ID. If you create an account or log in, that random ID is linked to your account.
If your browser sends a Do Not Track or Global Privacy Control signal, we do not collect analytics.
We rely on our legitimate interest in understanding how turtleSpaces is used, so we do not ask for consent first. You can object at any time: turn on Do Not Track or Global Privacy Control in your browser, and clear turtleSpaces’ site data to remove the ts_anon and ts_session IDs.
Pages on turtlespaces.org load fonts from Google Fonts and some page scripts and styles from cdnjs (Cloudflare). When your browser fetches these, those providers receive your IP address and browser details.
We do not sell personal data and we do not share it for advertising. We share it only with:
| Recipient | Role | What they receive |
|---|---|---|
| Anthropic | Processor — AI model provider | AI requests (see AI features) |
| Voyage AI | Processor — search for help pages | The text of AI chat messages |
| Sign in with Google (if you use it); Google Fonts on the website; email delivery (Gmail) | Sign-in data; your IP address; the emails we send you | |
| Cloudflare (cdnjs) | Website script and style hosting | Your IP address and browser details |
| Akamai (Linode) | Processor — hosting of the website, IDE, accounts server, AI service and analytics, in the United States | All data stored on our servers |
| Other users and the public | — | Published projects, your username, public profile (country, catchphrase, avatar, badges) |
| Your teacher or group owner | — | Your username, email address and progress, if you are in their class group |
| Authorities | — | Only when the law requires it |
We are in Canada, which the European Commission and the UK recognise as giving adequate protection to personal data handled by organisations like ours. Our servers and some of the processors above are in the United States (Akamai/Linode, Anthropic, Voyage AI, Google, Cloudflare). When personal data from the EU/EEA or the UK is transferred to them, we rely on:
You can ask us for a copy of the safeguards (see Contact us).
| Data | How long |
|---|---|
| Account and profile | While your account exists. We do not currently delete inactive accounts automatically; you can ask us to delete yours at any time. |
| Projects | While your account exists. When you delete a project it is hidden at once but kept so that it can be restored; it is permanently erased when your account is deleted, or sooner if you ask us. |
| Sign-in records | While your account exists |
| Learning progress | While your account exists |
| AI conversations | About 30 minutes in our AI service’s memory. Our server logs are deleted after at most 4 weeks. Anthropic keeps API requests for up to 30 days; Voyage AI does not keep them (see AI features). |
| Class progress summaries | Up to 6 hours in memory |
| Email verification codes | Expire after 60 minutes. The stored (hashed) code is replaced when a new one is sent and deleted with your account. |
| Analytics | 18 months |
| Feedback and crash reports | Kept until the problem is dealt with; we do not currently delete them automatically. You can ask us to delete yours. |
| Server logs | Web server logs for 14 days; system logs for up to 4 weeks |
| Browser storage | Until you log out, clear your browser data, or change the setting |
When an account is deleted, we delete or anonymise its personal data, except where the law requires us to keep it.
Under the GDPR you have the right to:
To use any of these rights, email help@turtlespaces.org. Parents and guardians can do this for their children. We will answer within one month. We may need to confirm who you are first.
Users in other places, such as US states with privacy laws, may have similar rights. Contact us and we will help.
We protect personal data with technical and organisational measures that fit the risk, including encrypted connections (HTTPS), access controls on our servers, and hashing of passwords and verification codes. No service is perfectly secure. If a personal data breach puts your rights at risk, we will tell you and the supervisory authority as the law requires.
We may update this policy when turtleSpaces changes or when the law changes. We will change the “last updated” date above, and for important changes we will tell account holders by email or in the IDE before the change takes effect.
For any question about privacy, or to use your rights, email help@turtlespaces.org. If you need to write to us by post, ask by email and we will give you an address.
See also our Terms of Service.