
KHALIL — KIDS CODING
El código debería sentirse como un descubrimiento.
Una plataforma educativa que enseña programación e IA a niños de 7 a 14 años a través del juego: un motor de bloques personalizado basado en el DOM con intérprete paso a paso, validador y transpilador a Python/JavaScript, un currículo de diez mundos, gamificación, recorridos para padres y docentes y un tutor de IA que pregunta en lugar de responder.
Khalil es un monorepo pnpm + Turborepo: apps/web sobre Next.js 15 con dnd-kit, Framer Motion y Zustand; apps/api sobre NestJS 11 con Prisma, argon2, helmet y limitación de peticiones; paquetes para el motor de bloques, el currículo, la gamificación, la economía y la UI. El motor de bloques es DOM en lugar de SVG —RTL nativo, mejor respuesta táctil, accesibilidad gratuita, 60 KB en lugar de 600 KB— y el mismo intérprete se ejecuta en cliente y servidor, de modo que una solución nunca pasa localmente y falla en la validación.
El currículo son datos tipados protegidos por 160 tests dorados: cada solución de referencia pasa, cada punto de partida falla, cada desafío tiene exactamente cuatro pistas ordenadas, cada cadena es bilingüe y la palabra error nunca aparece en un mensaje dirigido a un niño. Un niño no tiene cuenta —solo un perfil dentro de la cuenta de un padre o madre—, sin canales de usuario a usuario y con un libro mayor de recompensas inmutable sin compras con dinero real. El README señala una lista abierta de defectos, principalmente que las soluciones de los desafíos se envían actualmente al navegador en la página pública /try.
Visión general
Diez mundos, una mascota con ocho estados emocionales y un motor que convierte bloques arrastrados en Python y JavaScript reales.

Arquitectura
Diez decisiones
- 01DOM, no SVG, para el editor de bloques
- 02Un solo intérprete en cliente y servidor
- 03La IA pregunta, nunca responde: la escalera de pistas la impone el servicio
- 04La plataforma funciona sin ninguna clave de IA
- 05Un único bus de eventos para toda la gamificación
- 06Un libro mayor inmutable; los saldos pueden recalcularse desde cero
- 07Sin compras de moneda con dinero real: las cajas de recompensa quedan fuera de la regulación de loot boxes
- 08Solo se recopilan el apodo y la edad de un niño, nunca más
- 09El escenario de programación siempre es LTR: un mundo de coordenadas no es texto
Diseño
Azul real, cielo, púrpura, coral.
Baloo 2 para titulares, IBM Plex Sans Arabic para el cuerpo en árabe, Inter para el inglés, JetBrains Mono con ligaduras desactivadas para el código. Diez colores de mundo, ocho colores de categoría de bloque, cuatro niveles de rareza: todos desde design/tokens.json.
- —#3D5AFE azul real · #38BDF8 cielo · #8B5CF6 púrpura
- —#FBBF24 amarillo · #22C55E verde · #FB7185 coral
- —Khalil Bot — 8 estados
Trabajo pendiente
La propia auditoría del repositorio enumera 21 defectos críticos con un plan de seis fases y veinte semanas para llegar a cero; el primero es que 42 soluciones de referencia de desafíos se envían al navegador del niño y la puerta de CI destinada a detectarlo pasa falsamente. Lo que se publica aquí es el plan, no el marketing.