Con el crecimiento de las aplicaciones basadas en microservicios, las aplicaciones monolíticas han ido siendo desplazadas como la mejor forma de desarrollar aplicaciones web, pero hay una interesante propuesta sobre renovar las aplicaciones web mezclando ambos conceptos.

Te comparto Inertia.js, una librería que te permite desarrollar aplicaciones modernas con React, Vue y Svelte utilizando el renderizado del lado del servidor.

Actualmente para desarrollar una aplicación SPA es necesario implementar distintas API’s para comunicar el front end con el back end y eso agrega una capa de complejidad para aplicaciones que no lo requieren.

Inertia.js no requiere programar ninguna API en el front y eso es increíble ya que permite desarrollar aplicaciones de una sola página en un tiempo muy pequeño.

¿Cómo funciona Inertia.js?

La forma en que Inertia.js trabaja es aprovechando la representación del lado del servidor (por ejemplo, plantillas Blade o ERB), las vistas son componentes programados en JavaScript. Esto le permite construir todo su front-end usando React, Vue o Svelte.

Inertia ofrece <inertia-link> que sería algo parecido a <router-link> para Vue Router, pero a comparación de éste, no es necesario trabajar las rutas desde JavaScript, lo haces directamente en el backend.

Cuando Inertia realiza una visita XHR, el servidor detecta una visita de Inertia y, en lugar de devolver una respuesta HTML completa, devuelve una respuesta JSON con el nombre y los datos del componente de la página JavaScript (accesorios). Inertia intercambia dinámicamente el componente de página anterior con el nuevo componente de página y actualiza el estado del historial.

Fuente: https://inertiajs.com/how-it-works

¿Es una alternativa para VueJS, React o Svelte?

No, de hecho está pensado para que trabaje con estos frameworks. Estuve revisando el proyecto a profundidad y llegue al punto que es un punto intermedio entre el front end y el back end, lo que lo hace genial.

Soporte oficial

Es importante conocer el soporte que tiene cada librería que integramos en nuestro proyecto y es por eso que la comunidad ha trabajado en que Inertia.js sea compatible con las siguientes tecnologías:

Tiene compatibilidad con marcos modernos y eso le permite cumplir su objetivo principal: desarrollar aplicaciones monolíticas modernas.

¿Es seguro?

Una de las ventajas de usar Inertia.js es que no necesita integración con un sistema de autenticación para conectarse a su proveedor de datos (API), como OAuth.

Dado que sus datos se proporcionan a través de sus controladores y se alojan en el mismo dominio que sus componentes de JavaScript, no tienes que preocuparte por configurar CORS en tu aplicación.

Puedes leer más sobre el proyecto de Inertia.js en: https://inertiajs.com/

Mi opinión sobre Inertia.js

Se me hace un proyecto interesante porque están siendo un intermediario entre el front end y el back end de nuestras aplicaciones y me gusto demasiado la facilidad de la herramienta, pero, no me atrevería a utilizarlo en un proyecto muy grande en donde se requiera mucha personalización.

He desplegado una aplicación de prueba en un tiempo récord y eso me agrado mucho ya que me ha ahorrado un par de horas, eso está bastante bien y le doy una calificación positiva a Inertia.

Me hace falta adentrarme más en Inertia y pronto te compartiré contenido y algunos ejemplos prácticos sobre esta interesante herramienta.

Quiero agradecer a Juan Carlos de la comunidad de Laravel en Español quien fue el que me presento esta herramienta en un thread, me quede muy interesado después de esa charla.