Introducción
Una revolución en el desarrollo de páginas web comenzó alrededor del año 2017. Después de que el mercado adoptó generadores de sitios estáticos (Static Site Generators, SGG) en los equipos de ingeniería y de lograr enormes ahorros en los presupuestos de infraestructura, surgió la duda sobre la posibilidad de llevar esta revolución a equipos menos técnicos, como Marketing, Copywriters, Demand Generation, Product Marketing, entre otros.
Motivación
Lo que motivó todo esto fue el deseo de escalar la creación, edición y mantenimiento de contenido sin tener que recurrir a un desarrollador. Con el crecimiento exponencial de Azion, tuvimos que encontrar una forma de facilitar estos procesos de contenido web y que fuera posible hacer el monitoreo de esta escala.
Para tener una idea de este crecimiento, pasamos de tener solo un desarrollador de una agencia tercerizada que se encargaba del blog a:
- un equipo de copywriters encargados del área de documentación de productos con más de 15 editores;
- un equipo de contenido que se ocupa de los casos de éxito, con más de 10 editores, y
- un equipo de Product Marketing con más de 15 editores para la creación de contenido.
Prácticamente pasamos de 1 o 2 personas, responsables de realizar todo el proceso, a 3 o más equipos constituidos por cerca de 14 personas cada uno, incluyendo aquellos que no redactan (como editores, líderes y otros), pero que tienen la responsabilidad de posicionar nuestra presencia en la web.
¿Por qué elegir JamStack y no un CMS común?
LAMP Stack (Linux, Apache, MySQL, PHP/Perl/Python) es uno de los ejemplos más comunes cuando hablamos de servicios web. Por otro lado, JAMStack (JavaScript, API y markup) es una pila en crecimiento, ya que aprovecha todo el poder del Front-End. Las API conectan el Front-End a los servicios necesarios (como bases de datos de contenido y pasarelas de pago, por ejemplo) y las páginas son disponibilizadas como archivos estáticos.
La principal diferencia entre JAMStack y LAMP Stack es que el primero no necesita ser extraído de un servidor con contenido generado por base de datos. Todo es generado en el proceso de compilación (build time) y enviado a una CDN (Content Delivery Network). Las funcionalidades del tipo de servidor son gestionadas por servicios de terceros y conectadas a través de API.
Para crear un sitio web JAMStack de forma más simple, también fueron incluidos generadores de sitio estático. Al usar un SSG como Gatsby o Hugo, un desarrollador puede rápidamente crear un sitio web básico.
Ventajas de JAMStack respecto a LAMP Stack
Rendimiento: como las páginas son creadas en el proceso de compilación, se elimina el tiempo para generar el contenido o caché del servidor, así como también la necesidad de una base de datos.
Costos: al usar una CDN, es mucho más fácil escalar , ya que no tienes que preocuparte por escalar un servidor, una base de datos, entre otros. El costo será de acuerdo con la demanda, lo que también resuelve el problema de la disponibilidad.
Seguridad: Sitios web pre-construidos (pre-built) no tienen interacción dinámica con el servidor, así que no tienes que preocuparte por la seguridad de la base de datos o ataques DDoS. Con la pila LAMP, necesitas poner atención constantemente a las actualizaciones de seguridad, entre otros problemas.
Mejor experiencia para el desarrollador: es más simple desarrollar un Front-End web centrado en el núcleo, sin toda esa dependencia de pilas entre el cliente y el servidor con contratos sin fin. De esta forma, todo está conectado a través de API con responsabilidades únicas, se usa Github/Gitlab para integraciones y se facilita la implementación.
Conclusión
JAMStack es una de las mejores partes del ecosistema de JavaScript. Si tu equipo puede acceder a un personal técnico con conocimiento en Front-End o tiene un presupuesto limitado para desarrollar grandes proyectos web, esta es una gran opción. JAMStack hace toda la gestión más simple, desde la infraestructura e implementación hasta el rendimiento.