Si estas estudiando Desarrollo web, una de las cosas que quizas ya te has dado cuenta, es que no hay una sola forma de crear sitios web.
Algunos usan lenguajes de programación de Backend (como Python, PHP, Java, C#, Go, Javascript a través de Nodejs), otros usan Frameworks Frontend de Javascript (React, Angular, Vue, Svlete), y otros usan Generadores de sitios estáticos (Hugo, Gatsby, Astro, Jekyll).
Y si no sabes de que se tratan estos ultimos, el día de hoy voy a explicarte que son, para que sirven, cuando podrias usar este tipo de herramientas, y que opciones tienes para poder usarlos en tus proximos proyectos web.
Pero, antes de empezar primero debemos tener en claro que a que se le llama Contenido Estático o Static Content en desarrollo web.
¿Qué es contenido Estático?
Cuando hablamos de contenido estático, me refiero a archivos que se les pueden enviar a los usuarios y que no hace falta modificarlos, procesarlos o generarlos.
Si creas por ejemplo un sitio web con HTML, CSS y Javascript, y lo subes a un Hosting Compartido.
Lo que estarías subiendo es contenido estático, ya que el servidor solo tiene que enviarle estos archivos a tus usuarios, pero no necesita alterarlos de algún modo.
Es por esto tambien que estos archivos son muy faciles de compartir en la web, ya que no necesitan de ningun software adicional.
Entonces si creas sitios que estan conformados por HTML, CSS, Javascript, imagenes, pdfs y archivos similares, sin ningun tipo de software que los modifique, entonces creas sitios estaticos.
Ahora, si creas este tipo de proyectos, debes saber que hay formas más rapidas y fáciles de crearlos, gracias a los generadores de sitios estáticos.
¿Que son los Generador de Sitios Estaticos?
Los Generadores de Sitios Estaticos o en inglés Static Site Generators (abreviado SSG) son herramientas de software que como su nombre indica, permiten crear sitio web que su principal contenido son archivos que no necesitan procesarse (archivos no dinámicos).
Esto evita que tengas que crear archivos HTML a mano, ademas que ofrecen la posiblidad de generar sitios web en minutos, y reutilizar código e incluso impotar temas ya creados por la comunidad para que simplemente los personalices, e incluso algunos ofrecen ventajas en cuanto a rendimiento.
¿Para que sirven los SSG?
Usando estos Generadores de sitios estaticos puedes crear proyectos que su principal contenido sea informativo, como por ejemplo:
- Blogs
- Landing Pages
- Documentación de Proyectos Web
- Sitios Web de Noticias
- Portafolios Web
o cualquier sitio web que el contenido no necesite que se actualice constantemenete.
Ventajas de los Sitios Web Estaticos
Ahora como los sitios estáticos son en su mayoria archivos HTML, esto tiene algunas ventajas:
- Los motores de Busqueda como Google por ejemplo, pueden encontrar fácilmente tu contenido y entenderlo al ser textos, lo que tambien es bueno para el SEO (Seach Engine optimization)
- Como solo son archivos de HTML es fácil de desplegarlos. De hecho hay muchas plataformas de la nube que te permiten subirlo gratis indefinidamente, y en cuestion de minutos.
- El contenido cargá rápido, al ser HTML el navegador puede mostrar rapidamente tu sitio sin necesidad de interpretar código de Javascript
- Son más fáciles de aprender en comparación a los lenguajes de programación de Backend.
Herramientas de Generación de Contenido estático
Entre algunos de estos Generadores de sitios estáticos podemos encontrar a:
Los que estan más enfocados en crear sitios web como Blogs, Portafolios, landing pages, e incluso la comunidad ya ha creado temas gratuitos que puedes importar facilmente.
O si necesitas crear documentaciones de proyectos tambien estan opciones como:
- Docosaurus usando por proyectos como la documentación de Jest, React Native, Ionic, entre otros (https://docusaurus.io/showcase)
- MkDocs, quizas lo has visto en muchos proyectos de frameworks de Rust
- Docsify
- mdBook
- VuePress
o tambien estan opciones como:
- Gatsby
- Nextjs
- Nuxtjs
que permiten crear aplicaciones web con Javacript principalmente, pero tambien ofrecen generar contenido estático, aunque estos si son más complicados de usar en comparación a los anteriores.
Y hay muchas otras opciones, que ofrecen ser más rapidas para hacer build, otras ofrecen muchos plugins y temas, otros permiten usar frameworks de Javascript que se convierten a contenido estatico, otras son más faciles de empezar y así, de hecho puedes encontrar una lista enrome en el sitio https://jamstack.org/generators/
Incluso Actualmente tambien hay muchos proyectos que te ofrecen añadir un panel administrador a tus proyectos para que sean los ususarios los que creen su propio contenido, llamados CMS Estaticos, pero ese será uno de los siguientes temás que trataré.
Conclusión
En fin, como puedes ver hay muchas opciones, y dependiendo de lo que necesites algunas son más simples que otras. Pero en lo personal entre las opciones que te he mostrado, de los que más uso actualmente para crear sitios web sencillos, es Astro.
Y Si tuviera que crear documentaciones usaria Docosaurus,o Docsify, o si tuviera que crear aplicaciones web grandes que y tambien permitan crear contenido estático usaría Nextjs.
Pero estas son como opciones muy genericas, dependiendo del proyecto voy cambiadolas tambien, ya que no son dificiles de utilizar y pueden permitirte crear proyectos rapidamente.