¿Qué es Gatsby?
Gatsby es un generador de sitios estáticos en base a datos dinámicos 🤯, aunque en su página web su eslogan reza con un tachón en la palabra "static" y se reemplaza por medio de una animación por "dynamic", pero ya no lo verás, debía causar confusión o no se... ahora reza:
The fastest way to run the fastest frontend.
Vale bien... vuelvo a su definición inicial, no parece que esto resuelva mucha incertidumbre si partimos de la base de que no todo el mundo sabe que diferencias hay entre un sitio estático, y un sitio dinámico, y no, la diferencia no son las animaciones de la página.
A nivel conceptual básicamente hay dos tipos de sitios clásicos:
Tipos de sitios
- Un sitio estático: es una página web que se define inicialmente y no tiene opción de cambiar de una manera "automática", serian como una serie de documentos donde esta todo, no hay un servidor que este procesando nada, son archivos planos. Tu navegador es capaz de su renderizado sin nada extra, se podría decir que todo es HTML, CSS y VanillaJS (Javascript). Entonces cuando entras al dominio tu navegador lo interpreta y listo.
- Un sitio dinámico: Es una página que se compone a raíz de datos externos, una base datos por ejemplo. Aquí ya hay tipos de archivos que no sabe interpretar tu navegador, hay un servidor detrás, entonces cuando entras a la página web se hace una solicitud y ... el servidor es el que en base a la lógica que tenga programada o la información de la base de datos compone una vista que si, esto ya si lo sabe interpretar tu navegador.
DESVENTAJAS DE CADA UNO DE ELLOS
Sitio estático
- Para cambiar el contenido necesitas tocar directamente los documentos específicos, osea código.
- Las funcionalidades son casi nulas, ni enviar un correo electrónico se puede sin el soporte de un tercero.
Sitio dinámico
- Hay coste de infraestructura ( servidor , base de datos .. )
- Problemas de velocidad (por las conexiones que tiene que hacer)
- La seguridad puede estar comprometida ( al tener bases de datos y accesos ya tenemos puertas que cuidar )
- Costes de asociados a mantenimiento y actualizaciones
Gatsby
Ahora si te digo que Gatsby es un generador de sitios estáticos en base a datos dinámicos , igual ya sí que sabes lo que hace. ✨ Coge un sitio dinámico y lo convierte en estático. De este modo el tiene sus composiciones ya hechas y cuando un cliente entra en el sitio no hace ninguna consulta, imprime y listo, esto se denomina SSG(Static Site Generation).
VENTAJAS
- Performance.
- Páginas seguras.
- Infraestructura mínima
- Mantenimiento inexistente
- Escalabilidad
- Plataformas freemium muy generosas para el alojamiento
- Ecosistema moderno que incluye de manera sencilla la integración continua y el despliege continio (CI/CD)
- Le encanta a Google
DESVENTAJAS
- Hacen falta conocimientos técnicos para la implementación de nuevas características
- No es un DIY
LIMITACIONES
En realidad no le veo, ya que con plataformas como Amazon AWS ó Firebase de Google podríamos construir un sitio del tamaño y funcionalidades hasta donde nos diera la imaginación, pero es cierto que el grado de complejidad técnico estaría muy por encima del de hacerlo por otros medios. No olvides que aunque de una manera natural el framework adopta el SSG puedes salirte de ese marco para ejecutar funcionalidades en cliente y consumir los datos en el momento que el cliente entra en la web si eso fuera necesario.
Fuentes