Playgrounds
An editor and a Run button
Every one of these runs inside your own browser rather than sending your code to a server: real language runtimes in a sandbox, and for HTML and CSS, your browser's own rendering engine in a locked-down frame. That is also why none of them can reach the network or see anything else on your machine.
If you have never written code before, the playground is the harder place to start, because a blank editor asks you what to write. The Python exercises, JavaScript exercises, TypeScript exercises, Java exercises, C++ exercises, C exercises, C# exercises, Go exercises, PHP exercises, Ruby exercises, SQL exercises, R exercises and Bash & the Shell exercises hand you something that already runs and ask you to change one thing.
- PythonReal CPython compiled to WebAssembly. The largest runtime here, which is why it takes a moment the first time and almost none after.Pyodide 314.0.6 (CPython via WebAssembly)
- JavaScriptYour browser is already a JavaScript engine, so there is nothing to download and the first run happens the instant you click.the browser's own JavaScript engine
- TypeScriptThe real compiler, which means your types are genuinely checked — a type error stops the code before a line of it runs, with the compiler's own message.TypeScript 5.9.3 (the real compiler, self-hosted)
- JavaThe real OpenJDK javac, running as WebAssembly. Real diagnostics; a smaller class library than a full JDK, listed on its page.OpenJDK javac via TeaVM (2026-09-12 build, a subset of the class library)
- C++A real clang toolchain. Exceptions and std::cin genuinely work. About 27 MB on first use and loaded only when you ask.clang via Emscripten 3.1.24 (2026-09-12 build)
- CThe same real clang toolchain as C++, compiling C. scanf() reads from the input box. About 27 MB on first use and loaded only when you ask.clang via Emscripten 3.1.24 (2026-09-12 build)
- C#Roslyn 4.14.0 compiling for .NET 10.0.12 (Mono WebAssembly, interpreted)
- Goyaegi (commit fcb76d1e) — an interpreter, not a compiler; Go 1.21/1.22 stdlib ceiling
- PHPPHP 8.4 via php-wasm 0.1.0
- RubyCRuby 3.4.1 via @ruby/wasm-wasi 2.10.1
- SQLReal SQLite compiled to WebAssembly. Every run gets a fresh, empty database, and each query's rows print as a table.SQLite 3.49.1 via sql.js 1.14.2
- HTML & CSSThree tabs, one live page. Your own browser renders what you write, in a locked-down frame that cannot reach the network.Rendered by your own browser
- RR 4.6.0 via webR 0.6.0
- Bash & the Shelljust-bash 3.4.2 (simulated shell, not a real system bash)
What the sandbox can and cannot do
Each run is stopped after a few seconds if it has not finished, output is capped so a runaway loop cannot fill your memory, and every request to another website is refused by the browser itself. The full, honest description — including what the sandbox does not guarantee — is on the code execution and security page.