Elm y TEA: el lenguaje funcional puro sin errores en runtime, Model/update/view, los efectos como datos, y el legado que sembró en Redux, TCA y MVI.
Cada nivel construye sobre el anterior. Sin saltos, sin huecos.
La visión aérea: el lenguaje funcional puro, la arquitectura TEA, los efectos como datos, y el legado que sembró en Redux, TCA y MVI.
TEA: el patrón que inspiró a todos; Model, Msg, update y view; la fuente de la familia unidireccional.
Cómo Elm maneja lo impuro sin romper la pureza: Cmd, Sub, y el runtime que ejecuta los efectos por ti.
El sistema de tipos de Elm: inferencia total, sin null, sin any; por qué el compilador puede garantizar tanto.
Los custom types (uniones etiquetadas) y `case`: modelar el dominio para que los estados imposibles no compilen.
La ausencia y el fallo como valores: `Maybe` y `Result`, y por qué Elm no tiene excepciones en runtime.
Todo es una función: aplicación parcial, currying, el operador pipe, y componer transformaciones pequeñas.
Records: acceso, actualización inmutable, extensible records, y modelar el Model de la aplicación.
El compilador de Elm como copiloto: mensajes de error legendarios, refactor sin miedo, y cero errores en producción.
elm/html: la vista es una función pura de Model a Html Msg; virtual DOM, eventos, y atributos tipados.
Decoders: validar y tipar los datos que entran desde el exterior; por qué Elm no confía en el JSON crudo.
Ports: la frontera segura con JavaScript; enviar y recibir mensajes sin romper las garantías del compilador.
Escalar TEA: componer Model/Msg/update de submódulos, y por qué Elm evita los "componentes" al estilo React.
Aplicaciones de una página en Elm: `Browser.application`, parsear la URL, y la navegación como parte del Model.
elm-test: testear funciones puras, fuzz testing (basado en propiedades), y testear update sin montar la vista.
Construir interfaces: CSS clásico, elm-css, y elm-ui (el layout como tipos); el enfoque declarativo del diseño.
Cómo funciona por dentro: el virtual DOM de Elm, Html.lazy, keyed nodes, y por qué los bundles salen pequeños.
Llevar Elm a producción: el compilador, optimizaciones, integración con Vite/webpack, y convivir con una app JS.
La apuesta de Elm: garantías del compilador, versionado semántico forzado por tipos, y la estabilidad como valor.
La comparación sincera: qué gana Elm frente a TypeScript/React y qué pierde (ecosistema, contratación, ritmo de cambio).
Cómo TEA fecundó Redux, The Composable Architecture, MVI y hasta el diseño de Svelte; las ideas que se quedaron.
La síntesis: llevar el pensamiento de Elm (pureza, efectos como datos, modelar el dominio) a cualquier lenguaje.
Empieza por los fundamentos y sube nivel a nivel hasta el dominio total.
Comenzar el camino →