
En la era de la generación de código automática, es una mucho mejor idea dejar los frameworks (no todos) de lado para usar herramientas más simples y nativas. Te da velocidad, resiliencia, mantenibilidad y puedes reducir tu equipo al mínimo. ✅
1. HTMX: HTML mejorado
¿Por qué HTMX?
- Casi cero JavaScript en el cliente
- Interactividad sin SPA (Single Page Application)
- Ideal para aplicaciones tradicionales con interacciones AJAX
Ejemplo básico:
<button hx-get="/api/contador" hx-target="#contador" hx-swap="innerHTML"> Actualizar contador </button> <div id="contador">0</div>
2. HTML5 + Preact: Lo justo y necesario
Ventajas:
- Preact pesa solo 3KB (vs 40KB+ de React)
- Compatible con la mayoría del ecosistema React
- Mejor rendimiento por menos sobrecarga
Ejemplo de componente:
import { h, render } from 'preact'; import { useState } from 'preact/hooks'; function Contador() { const [count, setCount] = useState(0); return ( <button onClick={() => setCount(c => c + 1)}> Clics: {count} </button> ); } render(<Contador />, document.getElementById('app'));
3. Phoenix (Elixir): Potencia en el servidor
¿Por qué ahora?
- Los LLMs facilitan aprender lenguajes funcionales
- Concurrencia masiva con procesos ligeros
- LiveView permite aplicaciones reactivas sin JavaScript
Ejemplo de LiveView:
defmodule MiAppWeb.CounterLive do use Phoenix.LiveView def mount(_params, _session, socket) do {:ok, assign(socket, count: 0)} end def handle_event("increment", _, socket) do {:noreply, update(socket, :count, &(&1 + 1))} end def render(assigns) do ~L""" <button phx-click="increment"> Clics: <%= @count %> </button> """ end end
Conclusión
- HTMX: Para aplicaciones web tradicionales que necesitan interactividad
- Preact: Cuando necesitas componentes React pero con menos peso
- Phoenix/Elixir: Para aplicaciones en tiempo real con alta concurrencia
Los LLMs están haciendo accesibles tecnologías que antes requerían una curva de aprendizaje pronunciada. ¿Por qué no aprovecharlos para explorar estas alternativas más ligeras y eficientes?
Abrazo. Bliss. 🤓
