Jamstack es una arquitectura diseñada para hacer que la web sea más rápida, más segura y más escalable. El acrónimo JAM significa JavaScript, API & Markup.

«Acuñamos el término ‘Jamstack‘ en 2015 para definir mejor lo que los desarrolladores ya estaban comenzando a hacer: desacoplar la web y las aplicaciones de front-end y back-end, centrarse en las mejores prácticas de velocidad y disponibilidad, y redefinir sus flujos de trabajo», explicó Matt Biilmann, CEO y cofundador de Netlify.

¿Qué es un stack?

Una pila o stack tecnológico es una combinación de herramientas, servicios y aplicaciones que se emplean para construir una web o aplicación móvil. Puede incluir (aunque no está limitado a):

  • Lenguaje de programación
  • bases de datos
  • sistema operativo del servidor
  • Software para facilitar la interacción del sistema

Es una descripción de la infraestructura que permite que se ejecute una pieza de software y también describe las dependencias asociadas con él.

Algunos de los stacks más populares son LAMP, MERN, LEMP y MEAN.

¿Qué es Jamstack?

Jamstack es una arquitectura en la que un sitio web se entrega de forma estática, pero proporcionando contenido dinámico y una experiencia interactiva a través de JavaScript. El término en sí representa el stack JAM en un sitio web: JavaScript, API y Markup.

«Una arquitectura de desarrollo web moderna basada en JavaScript del lado del cliente, API reutilizables y Markup preconstruido»

Mathias Biilmann (CEO y cofundador de Netlify).
JAMstack
Qué significa JAMstack

JavaScript

Las funcionalidades dinámicas son manejadas por JavaScript. No hay restricciones sobre qué marco (framework) o biblioteca debe usar.

API

Las operaciones del lado del servidor se resumen en API reutilizables y se accede a ellas a través de HTTPS con JavaScript. Estos pueden ser servicios de terceros o su función personalizada.

Marcado

Los sitios web se sirven como archivos HTML estáticos. Estos se pueden generar a partir de archivos de origen o templates, basados en lenguajes como HTML o Markdown, utilizando un generador de sitios estáticos.

¿Es una pila?

Aunque Jamstack incluye la palabra «stack» (pila), se usa de manera más amplia para referirse a una arquitectura. Es una base y un conjunto de principios que, cuando se combinan, representan una forma poderosa de crear aplicaciones web.

Aunque hay diversas opiniones sobre lo que significa exactamente Jamstack en la actualidad, estos atributos están presentes en la mayoría de los sitios que afirman ser de Jamstack:

Desacoplado

El front-end utiliza herramientas separadas de la parte trasera, generalmente se construye utilizando un generador de sitio estático. Y el back-end a menudo se integra con el front mediante los datos que devuelven las APIs y durante el proceso de compilación. Los procesos del lado del servidor también se pueden ejecutar mediante funciones sin servidor (serverless functions).

Estático primero

Si bien existen varias prácticas para introducir elementos dinámicos en los sitios de Jamstack, la mayoría están renderizados previamente, lo que significa que el front-end se creó y compiló en archivos HTML, CSS y JavaScript.

Mejorado progresivamente

JavaScript se puede introducir en sitios renderizados previamente según sea necesario, lo que aumenta el rendimiento en el navegador.

Beneficios de Jamstack

  • Mayor rendimiento, aplicaciones más rápidas. Se «sirve» el HTML preconstruido y otros activos a través de una CDN.
  • Más seguro y menos vulnerable a ataques.
  • El alojamiento de archivos estáticos es muy económico, lo que ahorra dinero en servidores.
  • Los desarrolladores front-end pueden concentrarse en el front-end, sin estar atados a una arquitectura monolítica. Esto generalmente significa un desarrollo más rápido y más enfocado.
  • Muy escalable a bajo costo.

Aquí podrás ver una charla relacionada al tema:

Conclusión

Jamstack es considerada como la nueva arquitectura estándar para la web. Mediante el uso de flujos de trabajo de Git y herramientas de compilación modernas, el contenido prerenderizado se envía a una CDN y se dinamiza a través de API y funciones sin servidor. Las tecnologías en el stack incluyen frameworks de JavaScript, generadores de sitios estáticos, headless CMS y CDN.

Juan Manuel Amatta
Juan Manuel Amatta

Juan Manuel es Licenciado en Comunicación Social, y se dedica a la comunicación digital desde 2008, cuando empezó a escribir en su blog, y luego en otros sitios de tecnología. Trabaja en la Coordinación de Comunicación de la Universidad Nacional de Rosario. Es docente en la UNR, la UCU y el IPR. Además, dicta charlas y cursos sobre redes sociales.
También recomienda libros y comics en su cuenta de bookstagram: @librosqueamattan