Para que MIE#%!& Sirve Laravel Inertia

Video thumbnail

Esta es una pregunta que me llevo haciendo desde hace meses y que quiero compartir contigo, incluyendo un poco de contexto sobre mis proyectos y experiencias.

Contexto

En los proyectos con los que trabajo normalmente tenemos dos partes:

  • Administrativa: panel de control, dashboard, CRUD, gestión interna.
  • Usuario final: blogs, ventas de productos, cursos, libros, reservas, etc.

Esto aplica a cualquier temática: vender carros, entradas, gorras, alquilar casas u hoteles… siempre hay una parte administrativa y otra parte visible para el usuario final.

SPA y SEO: una relación complicada

Un problema importante con las SPA (Single Page Applications) es que no siempre se posicionan bien en motores de búsqueda. Google, por ejemplo, carga contenido dinámico a trozos y muchas veces no “lee” correctamente la información, lo que dificulta el SEO.

Por eso, para páginas web que queremos posicionar (hoteles, productos, blogs), el enfoque clásico sigue siendo más recomendable.

Inertia: Vue en lugar de Blade

La principal característica de Inertia es que devuelve un componente Vue en lugar de un Blade. Por ejemplo:

public function create()
{
    $categories = Category::get();
    return inertia("dashboard/post/Save", compact('categories'));
}

Eso es prácticamente el 90% de lo que ofrece Inertia. A diferencia de Livewire, no proporciona interacción directa con el backend mediante eventos o métodos del componente.

Por ejemplo, en Livewire podemos tener un botón que ejecute un método del componente directamente:

<x-button class="flex-shrink-0" wire:click="tagSave">
    {{ __('Set') }}
</x-button>

Y llamar a métodos del componente de manera directa:

public function tagSave()
{
    // dd($this->tags[$this->tag_selected]);

    if ($this->tag_selected != null) {
        $t = Tag::find($this->tag_selected);
        $this->tagsSelected[$t->id] = $t->title;

        if ($this->post)
            $this->post->tags()->sync(array_keys($this->tagsSelected));
    }
}

Inertia para dashboards: no es la mejor opción

Para módulos administrativos, como un dashboard, no recomendaría Inertia.

  • Vue/Inertia está más pensado para el usuario final, donde las animaciones, interactividad y experiencia visual son clave.
  • El backend usualmente es más funcional y sencillo: menos estilo, menos animaciones, más eficiencia.

En cambio, Livewire es más eficiente para dashboards:

  • Todo sigue siendo Blade/Laravel.
  • Métodos del componente se llaman directamente sin necesidad de rutas adicionales o peticiones Axios.
  • Mejor escalabilidad y modularización para operaciones CRUD y acciones complejas en el dashboard.

Rest API + Laravel: la opción ideal hoy en día

Hoy en día, todas las aplicaciones web tienen su equivalente móvil: Udemy, Duolingo, Gmail, etc.

Si hubiera usado Inertia para mi web de academia, habría tenido un problema importante:

  • Para crear la app móvil en Flutter, necesitaría duplicar cada controlador de Inertia para generar la Rest API.
  • Cada cambio en la web tendría que replicarse en la API móvil.
  • Esto genera redundancia y complicaciones en la lógica de la aplicación.

Por eso, la mejor práctica es:

  1. Laravel + Rest API (backend robusto y reutilizable).
  2. Vue/React/Flutter (frontend web o móvil).
  3. Livewire solo para dashboards donde se necesite interacción rápida sin duplicar lógica.

✅ Conclusión

  • Inertia es útil si quieres reemplazar Blade por Vue y mantener un proyecto web rápido de desarrollar.
  • No es ideal para dashboards administrativos ni cuando planeas aplicaciones móviles que consuman la misma lógica.
  • Para proyectos escalables y multiplataforma: Laravel + Rest API + frontend separado (Vue, React, Flutter) es la combinación más recomendable.
  • Livewire sigue siendo excelente para dashboards y operaciones CRUD donde la integración directa con Blade/Laravel es una ventaja.

Acepto recibir anuncios de interes sobre este Blog.

No se para que Usar Laravel Inertia, para que lo usas tu?

| 👤 Andrés Cruz

🇺🇸 In english