Astro, Tailwind y un nuevo blog

Como Astro y Tailwind hacen interesante hacer web denuevo. Un largo proceso con un final feliz.

Esto es nerd, pero nerd. Hace muchos años, casi desde que salió, usé Wordpress en un blog. De hecho hice experimentos antes con algo que se llamaba BBLog o algo así. Todo era PHP, MySql, consiguiendo algún hosting gratis cuando la velocidad no era un tema. No existía YouTube, no teníamos redes sociales. Todavía no aparecía ni Fotolog ni Facebook. Siempre me asombro cuando recuerdo esa época y hago un recuento de como en tan pocos años todo se fue literalmente a la mierda y nos llenamos de servicios y productos monopólicos que son propiedad de un puñado de idiotas libertarios de San Francisco. No se me malentienda, no estoy en contra de la tecnología, sólo de ellos.

Wordpress, un mal necesario. Un tanque a pedales, pero que ha permitido a miles de personas poder escribir, trabajar, etc. Mantener un proyecto de software tan complejo como un CMS todos estos años no es una tarea cualquiera y es un muy buen síntoma. Si vas a empezar un blog o sitio web y no tienes plata ni tiempo, usa Wordpress. Si quieres empezar un camino de aprendizaje que te lleve a ser más independiente en el desarrollo, empieza con Wordpress. Luego tienes todo el tiempo para ver videos y leer.

Los CMS se dividen en dos categorías para mi: los que necesitan en algún punto que hagas algo en editor y consola y los que no. Si alguien no quieres usar un CMS con botón de encendido incluido y con todo resuelto, primero debe aprender el ecosistema del programa. No es necesario hacerse experto en todo, siempre es bueno empezar sólo con lo que se necesita.

Entender cómo funciona javascript y/o typescript es fundamental, ya que incluso los frameworks que intentan disminuir, a veces hasta cero, el uso de javascript en el front, están desarrollados en estos lenguajes. Hacer un programa con javascript para no usar más javascript, es el dicho.

Después de un tiempo si tu opción fue aprender, puede que te des cuenta que te conviene algo como Astro, Jekyll, Hugo, etc. Este tipo de estructura generalmente es suficiente para el 99 por ciento de los blogs que ves todo el tiempo. Es la opción más liviana y segura, entretenida también si quieres aprender, sino… usa Wordpress.

Para sitios livianos o mal llamados “estáticos” hay varias posibilidades. Antes de entrar en la división de lo que es un sitio web estático y uno dinámico recomiendo leer este artículo, le ayudará a dejar de hacer esa diferencia o tomarla en su real dimensión. No hay sitios estáticos en la web. Sólo unos más dinámicos y otros mucho más dinámicos que otros. Desde el blog que carga archivos markdown hasta los sitios de Google, todo pasa por HTTPS!

Probé con Jekyll que es el generador de sitios estáticos(livianos!!!) más popular de Ruby y también con Hugo, algo parecido pero en Go. La idea de fondo de estos frameworks es que para desarrollar el blog tienes que tener instalados los lenguajes, Go o Ruby y los programas necesarios. Luego lo que se sube al servidor para publicar es una especie de compilado (por ponerle un nombre) liviano y optimizado. Como los repositorios de código se pueden alojar en Github o Gitlab y a partir de ellos generar los sitios en sus servicios de pages, luego cada actualización es sólo un push nuevo al repositorio. Óptimo. Es una muy muy buena idea y se tomó el mundo. Siempre pasa algo con las buenas ideas en programación y es que cuando una estructura o estrategia está bien hecha, bien armada, con lógica clara, etc. la gente la usa. La gente del desarrollo tiende a respaldar las buenas ideas. Una buena idea que tiene fallas se puede solucionar, pero una mala idea que anda bien está destinada a morir.

Aprender de todo es la forma, ya que la programación finalmente es una sola.

Astro

Creo que hace un año atrás supe por primera vez de Astro, pero sólo ahora en los últimos meses -primeros de 2024- lo empecé a usar en forma intensiva. Me hizo volver a la entretención de hacer páginas web. Combinado con Tailwindcss es una mezcla que hace imposible que no den ganas de jugar un rato y probar cosas. Hoy es tan fácil subir un proyecto a la web para hacer pruebas desarrollando prácticamente con cualquier framework, que la posibilidad de hacer experimentos es infinita. Github o Gitlab y luego pages, Vercel o Cloudflare y ya está! Ahora la gente de Astro lanzó AstroDB, su versión para administrar bases SQL, transformándose en la competencia directa de Wordpress y todos los otros CMS. La diferencia de Astro es que es siempre más artesanal(en el sentido de usar las manos), original y evidentemente más rápido.

Porqué es tan rápido. Astro carga la menor cantidad posible de javascript, por lo que es la idea inversa a las aplicaciones de página completa como React, Angular y las otras. El framework genera un carpeta dist, nada nuevo, sólo que está muy muy optimizada. A veces cuesta creerlo, pero funciona. La forma de desarrollar fomenta más el html común y corriente y el css -en mi caso tailwind-. Toma un tiempo acostumbrarse porque es un paradigma distinto, con cosas comunes como los componentes, layouts, etc., todo lo que siempre trae un framework frontend, sin embargo tiene cosas diferentes a un framework corriente y a los otros generadores de “sitios estáticos”. En mi caso, que he hecho más cosas en frameworks como Django, es interesante porque es usar una plataforma para frontend y escarbar en ella para lograr funcionalidades propias del backend mientras en el trayecto me voy reencantando con el html y los estilos.

Lo más interesante de esto es la idea que hay detrás de estos nuevos frameworks y librerías, me refiero a Astro, Tailwind y cosas como htmx. Se ve una tendencia o un deseo de apuntar hacia la unificación del desarrollo web, por lo menos en algunos aspectos. Hay experiencias muy interesantes en la aplicación de htmx a proyectos existentes en que la gente involucrada hace notar la presencia de este enfoque y los beneficios que llegan cuando frontend y backend se trabajan en una forma más integral. Claro que puede ser un enfoque para un tipo de proyectos y para otros no, pero es algo que hace 3 años parecía como impensable y casi innombrable. Personalmente creo que en cualquier tipo de proyecto las personas deben trabajar lo más juntas posible, opinando e involucrándose en varios aspectos. Todos somos PM, es el dicho.

Web creada con Astro y Tailwind, más Alpinejs para el menú mobile.