Local by design
Activity drafts and completion checkpoints are stored in your browser’s local storage. The standalone playground also saves its code and prepared input locally, under a separate key. The welcome dismissal uses session storage. Your decorative-motion preference is stored locally too. We do not operate a database of readers or upload your code or progress. Exported progress files contain your code; keep them somewhere you trust.
Hosting and Python
Surge serves the pages and Python runtime. Like any hosting provider, it receives connection information such as your IP address when your browser requests files. This site does not add analytics, third-party fonts or tracking pixels. Python runs in a separate browser worker. Stop terminates that worker.
Access and control
Use Your progress to export or clear activity data. Use Save .py in the playground to download its code; prepared input is not included. Clearing this site’s browser storage removes both activity and playground data. Private browsing and storage restrictions may prevent saving; export important work.
Built for different ways of learning
Pages have semantic headings, keyboard controls, visible focus indicators, labelled editors and text alternatives. There are no timed challenges. Hints and full examples remain available. Reduced-motion preferences are respected.
A keyboard makes code editing easier. Lessons remain readable without JavaScript; interactive games and Python execution require it. If a feature is inaccessible, the downloadable Python examples and written lesson explanations provide another route.