Skip to content
All projects

Web product · September 2026 Live

intenta.cl

An HTML, CSS, JavaScript and Python playground in Spanish for teaching programming: challenges with tests, live classrooms in stages and a collaborative whiteboard.

intenta.clChallenge libraryPrivate repository
reto.js
function saludar(n) {  return `Hola, ${n}`;}saludar('mundo');
› Hola, mundo
✓ 3/3 pruebas
Loading demo…

What it is

A whiteboard for coding in class: students write, run and share with a link; teachers build challenges with automatic tests and follow the class’s progress live.

Python runs in the browser with WebAssembly, infinite loops stop on their own and nobody needs to create an account.

4languages in the browser
200students per classroom
36challenges in the library
0accounts to create

What I built

  • CodeMirror 6 editor with colors taken from the site’s CSS variables
  • Python with Pyodide in a dedicated Worker that restarts after 5 seconds
  • A testing engine in Spanish: prueba(), esperar(), escribir(), clic()
  • Live classrooms over WebSocket with a teacher dashboard and CSV export for Excel
  • Challenge library, a printable guide with a QR code and a share image generated with Satori
  • Real-time collaborative whiteboard: pages, images, pasted code, flowcharts and PDF
  • Classrooms in stages with quick or anonymous questions, raised hands, live code and a class report
  • Python with turtle and matplotlib, input() in the console and errors marked in the editor
  • An installable editor that works offline, and a WCAG 2.1 AA audit with zero issues across the site

The hard parts

01

Infinite loops

Before running, the JS is parsed with Lezer and every for/while gets a guard on the same line: line numbers don’t change and the loop is cut off after 1.5 s.

02

Tests that leave no trace

The preview runs only the student’s code; a hidden iframe runs the same code plus the tests and replies via postMessage with an ID per run.

03

Classrooms without accounts

One Durable Object per classroom stores only the SHA-256 of the teacher’s key and deletes itself after 24 hours.

04

One whiteboard for the whole class

Each whiteboard is a Durable Object; the rules that validate every stroke are the same in the browser and on the server, and an end-to-end test drives it with two browsers at once.

↑↓ move↵ openEsc close