Privacy Policy

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.

Contents

  1. Who we are
  2. The short version
  3. What we collect and why
  4. Children
  5. Schools and teachers
  6. AI features
  7. Analytics, cookies and browser storage
  8. Who we share data with
  9. International transfers
  10. How long we keep data
  11. Your rights
  12. Security
  13. Changes to this policy
  14. Contact us

Who we are

The data controller responsible for your personal data is:

  • April Ayres-Griffiths and Melody Ayres-Griffiths, who make turtleSpaces (published as RetroCoders), British Columbia, Canada
  • Email: help@turtlespaces.org. We can give a postal address on request.
  • Data Protection Officer: we are a small organisation and are not required to appoint a formal Data Protection Officer. April Ayres-Griffiths is responsible for privacy and can be reached at help@turtlespaces.org.
  • EU and UK representative (Art. 27 GDPR / UK GDPR): we have not appointed a representative in the EU or the UK. Users in the EU and the UK can contact us directly at help@turtlespaces.org.

The short version

  • You can use the turtleSpaces IDE without an account. You can write and run programs without telling us who you are.
  • If you create an account, we keep your username, email address, country and a password, plus anything you choose to add to your profile.
  • Projects you publish are public, together with your username.
  • If you use an AI feature (the Shelly assistant, “explain”, “comment”, tutorial generation or exercise checking), the text you type and the program you are working on are sent to our AI provider to produce an answer.
  • We count how the site and IDE are used with our own analytics service, using a random ID stored in your browser. We do not use advertising trackers and we do not sell personal data.
  • There are no ads.

What we collect and why

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.

Children

turtleSpaces is made for learners of all ages, including children.

  • You do not need an account to use the IDE. A child can use turtleSpaces without giving us any personal data beyond the anonymous analytics described below.
  • In the EU and UK, where we rely on consent to process a child’s data, Article 8 GDPR requires consent from a parent or guardian for children under the age of digital consent in their country (between 13 and 16, depending on the country; 13 in the UK). Children below that age should only create an account with a parent’s or guardian’s permission, or through their school.
  • In the United States, children under 13 should only use an account with verifiable parental consent, or through a school that has authorised use of turtleSpaces for the school’s educational purposes, as COPPA allows.
  • We do not show ads, and we do not use children’s data for marketing or profiling for advertising.
  • Children’s published projects are public, with their username. Children should choose a username that is not their real name.
  • Parents and guardians can ask us to see, correct or delete their child’s data at any time by contacting us (see Contact us). We will need to confirm you are the child’s parent or guardian.

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.

Schools and teachers

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:

  • the school is the controller of its students’ data, and
  • we act as a processor on the school’s behalf (Art. 28 GDPR), using the data only to provide turtleSpaces to the school.

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.

AI features

Some features use a large language model to help you:

  • the Shelly assistant (chat, “explain this”, error help),
  • automatic procedure comments,
  • tutorial (“Turtorial”) generation,
  • exercise checking, and
  • class progress summaries for teachers.

AI features need you to be logged in. When you use one, we send the following to our AI service:

  • the message or question you typed,
  • the program you are working on (procedure names, code and turtle names),
  • the language of the interface, and
  • a session ID so the assistant can follow the conversation.

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.

Analytics, cookies and browser storage

Cookies

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.

What we store in your browser

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

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.

The website

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.

Who we share data with

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
Google 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

International transfers

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:

  • the EU–US Data Privacy Framework (and the UK Extension) where the recipient is certified under it, and otherwise
  • the European Commission’s Standard Contractual Clauses (and the UK Addendum) in the recipient’s data processing terms.

You can ask us for a copy of the safeguards (see Contact us).

How long we keep data

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.

Your rights

Under the GDPR you have the right to:

  • Access — get a copy of the personal data we hold about you (Art. 15).
  • Rectification — have wrong data corrected (Art. 16).
  • Erasure — have your data deleted (Art. 17).
  • Restriction — ask us to limit how we use your data (Art. 18).
  • Data portability — get the data you gave us in a machine-readable format (Art. 20).
  • Object — object to our use of your data based on legitimate interests (Art. 21).
  • Withdraw consent — where we rely on consent, withdraw it at any time. This does not affect what we did before you withdrew it.
  • Complain — lodge a complaint with a data protection supervisory authority, in particular in the EU country where you live or work, or where you think the problem happened. We are not established in the EU, so we have no lead supervisory authority there. In Canada, you can complain to the Office of the Privacy Commissioner of Canada or the Office of the Information and Privacy Commissioner for British Columbia.

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.

Security

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.

Changes to this policy

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.

Contact us

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.