TL;DR
EktuPy is a browser-hosted Python editor designed to give Scratch-like creative tools while exposing users to typed code. It runs entirely in the user's browser using PyScript and WebAssembly tooling, includes examples and tutorials, and will be released as a Django-based codebase under a proper license.
What happened
A developer has unveiled EktuPy, a project aimed at helping Scratch users transition toward Python programming. The interface pairs a code editor with a visual stage so creators can build the kinds of animated or interactive projects familiar from block-based tools. EktuPy executes user code inside the browser via PyScript; linting and language server features come from Astral, which brings Ruff and ty support through WebAssembly. The project ships with example programs and short tutorials for each example to help learners who prefer hands-on guidance over documentation. Accounts allow users to save projects, publish them publicly from a dashboard, and let others discover, run or remix shared work via an explore page. To simplify teaching, certain calls that would normally be asynchronous (for example wait or play_sound_until_done) are presented synchronously in the editor and transformed to async/await behind the scenes. The author plans to publish the Django-based codebase with a proper license and solicits user feedback.
Why it matters
- Bridges a generation familiar with block-based tools toward text-based Python without losing visual feedback.
- Runs entirely client-side, reducing server dependency and lowering friction for trying code in a browser.
- Built-in examples, tutorials and sharing features aim to make learning and collaboration easier for young users and educators.
- Hides asynchronous complexity from beginners, potentially lowering the barrier to start coding interactive projects.
Key facts
- Project name: EktuPy.
- Interface pairs a code editor with a Canvas/stage so users can create Scratch-like projects using Python.
- Uses PyScript for browser-based Python execution.
- Astral provides Ruff and ty support for LSP/linting via WebAssembly inside the editor.
- Code executes in the user's browser rather than on a remote server.
- Each example in the editor is accompanied by a short tutorial to help beginners start quickly.
- Users can create accounts, save programs, make them public from a dashboard, and others can find them in an explore page to run or remix.
- Synchronous-facing helper calls (e.g., wait(), ask(), play_sound_until_done(), wait_until()) are presented to the user and an AST transformer adds async/await where required.
- The author demonstrated EktuPy on a monthly PyScript community call and plans to publish the codebase as a Django application with a proper license.
- Acknowledged dependencies and influences include Scratch, CodeMirror, PyScript/PyOdide, the broader Python community, and assistance on TypeScript/JavaScript from Claude/Opus4.5.
What to watch next
- Publication of the EktuPy codebase as a Django application under a proper license (confirmed in the source).
- Adoption by teachers and education programs and how they use the tutorials and sharing features (not confirmed in the source).
- Feature development, bug fixes and community contributions after the codebase is published (not confirmed in the source).
Quick glossary
- PyScript: A framework that lets developers run Python code in the browser by integrating Python runtimes with HTML and JavaScript.
- WebAssembly (Wasm): A low-level binary format that enables high-performance code (from languages like C, Rust, or toolchains) to run in web browsers.
- LSP (Language Server Protocol): A protocol that enables code editors to provide features like autocompletion, linting and go-to-definition by communicating with language-specific servers.
- AST transformer: A tool that programmatically modifies a program's abstract syntax tree to change or inject code patterns before execution.
- Scratch: A block-based visual programming environment designed to teach programming concepts through drag-and-drop sprites, scenes and events.
Reader FAQ
Does EktuPy run code in the browser or on a server?
The source states that the entire code executes in the user's browser using PyScript.
Will the EktuPy source code be published?
The author intends to publish the codebase as a Django application with a proper license, according to the source.
Are there learning resources bundled with the editor?
Yes — each example in the editor includes a short tutorial to help beginners get started, per the source.
Do users need to understand async programming to use EktuPy?
The project presents certain functions synchronously in the editor and uses an AST transformer to insert async/await as needed, so learners are not expected to manage async details initially.
INTRODUCING EKTUPY Py (daughter) is now 11 years old, and she spends a lot of time on Scratch, makes beautiful and fun things. But, she thinks she is not a…
Sources
Related posts
- CLI agents such as Claude Code make home server self‑hosting simpler
- iMessage-kit: Type-safe macOS SDK for reading, sending and automating iMessage
- I’d tell a UDP joke, but you might not receive it — CodePuns dev humor