Grover Menacho Capítulo 0: Una Nota del Autor Aprendí Odoo cuando todavía era OpenERP, allá por el 2013, cuando la documentación era un PDF con formato de folleto, cuando Odoo tenía apenas un puñado de módulos y era solamente Open Source. Desde e... 25 ago de 2026
Grover Menacho Capítulo 1: El "Por Qué": De Páginas Estáticas a UI Moderna ¿Por qué este capítulo? Todo consultor tarde o temprano recibe la pregunta "¿por qué no usamos jQuery para esto?" — este capítulo es la respuesta, respaldada por la historia real de la web y del propi... 25 ago de 2026
Grover Menacho Capítulo 2: Tu Kit de Herramientas Esenciales de JavaScript ¿Por qué este capítulo? La mayor parte del tiempo de depuración que le he facturado a clientes a lo largo de los años no lo pasé leyendo código — lo pasé mirando las pestañas de Network y Console de l... 25 ago de 2026
Grover Menacho Capítulo 3: Fundamentos de JavaScript Moderno, Parte I ¿Por qué este capítulo? Todavía veo a desarrolladores junior entregar código con var y loops for manuales en proyectos OWL — funciona, pero pelea contra el lenguaje sobre el que OWL fue diseñado, y se... 25 ago de 2026
Grover Menacho Capítulo 4: Fundamentos de JavaScript Moderno, Parte II ¿Por qué este capítulo? Todo componente OWL que vayas a escribir es una class , cada prop y resultado del ORM que manejes se beneficia del destructuring, y cada llamada al servidor es asíncrona — este... 25 ago de 2026
Grover Menacho Capítulo 5: ¡Hola, OWL! Tu Primer Componente ¿Por qué este capítulo? Cada característica de OWL que aprenderás más adelante se apoya en el mismo esqueleto de tres archivos que armas aquí — si dominas esta parte, el resto del libro son adiciones,... 25 ago de 2026
Grover Menacho Capítulo 6: Renderizado con Plantillas QWeb ¿Por qué este capítulo? El HTML estático te da una demo; las directivas de QWeb te dan una aplicación real. Este es el vocabulario que vas a leer y escribir en cada archivo de plantilla de aquí en ade... 25 ago de 2026
Grover Menacho Capítulo 7: Estado y Reactividad: Haciendo Componentes Dinámicos ¿Por qué este capítulo? Este es el modelo mental sobre el que se construye todo lo demás en OWL — props, hooks, servicios, incluso las signals de OWL 3 (Capítulo 18) son variaciones de "cambia el dato... 25 ago de 2026
Grover Menacho Capítulo 8: Props: Comunicación de Padre a Hijo ¿Por qué este capítulo? Casi todo reporte de bug que recibo que empieza con "el widget muestra datos desactualizados" termina en un componente que lee o modifica datos que nunca debió poseer. Las prop... 25 ago de 2026
Grover Menacho Capítulo 9: Manejo de Eventos: Comunicación de Hijo a Padre ¿Por qué este capítulo? Heredé más de un addon donde un widget hijo se metía directamente al estado de su padre para "arreglar" algo, y cada uno de esos se volvió frágil en cuanto alguien cambiaba el ... 25 ago de 2026
Grover Menacho Capítulo 10: Los Hooks del Ciclo de Vida del Componente ¿Por qué este capítulo? Más incidentes de producción de los que he atendido se remontan a errores de ciclo de vida que a casi cualquier otra cosa — un fetch que se dispara antes de que exista el DOM, ... 25 ago de 2026
Grover Menacho Capítulo 11: Hooks Modernos - useEffect y useRef ¿Por qué este capítulo? Los hooks de ciclo de vida por sí solos te empujan a escribir código organizado por "cuándo", no por "por qué" — la configuración de un timer termina en onMounted , su limpieza... 25 ago de 2026